Packages Needed For Borealis
Borealis relies on several external software packages that are available through free downloads. Some of the packages are denoted optional and are only required when you want to use specific features.
Many versions of packages are incompatible with the versions used to build and run Borealis. Consequently newer or older versions may not work properly in many cases. The versions used to build Borealis are listed for each package. You can try different versions if you like, but the most reliable method is to install the given versions of each package.
Before installing the packages you will want to think about where you want to place them. Everyone has their own way of doing things. We established a dedicated software directory containing subdirectories for each of the installed packages. It also contains a kit subdirectory with all of the downloaded files. The total space used is under 50 MB.
Links are provided for each of the packages used by the Borealis system. There you will find software and installation instructions for each package. Additional notes on installing some packages are provided for GNU Gcc, CCache, Antlr, Xerces, Libtool / Autoconf / Automake, Berkeley-Db, Glpk, Gsl, Open Computer Vision, and Doxygen.
libtoolize 1.5.22 or 1.5.10 http://www.gnu.org/software/libtool/libtool.html ftp://ftp.gnu.org/gnu/libtool/ autoconf 2.6 or 2.59 autoheader (part of autoconf) http://www.gnu.org/software/autoconf/ ftp://ftp.gnu.org/gnu/autoconf/ automake 1.9.6 (requires autoconf 2.6 to build) or 1.9.2 aclocal (part of automake) http://www.gnu.org/software/automake/ ftp://ftp.gnu.org/gnu/automake/ gcc 3.3.5 through 4.1.1 http://gcc.gnu.org ocv 1.0.0 http://downloads.sourceforge.net/opencvlibrary/ ccache 2.4 (tested with gcc 4.1.1) or 2.3 (tested with gcc 3.3.5) (optional, helps speed-up consecutive recompilations) http://samba.org/ftp/ccache/ http://ccache.samba.org/ http://www-106.ibm.com/developerworks/linux/library/l-ccache.html java jdk 1.5 javac Newer versions of Java will probably work. Try your installed version of Java first unless you have an older version. In that case locate a newer version on the web that is compatible with your environment. Position this version of java first on your PATH and CLASSPATH variables if you need to override any older installed version. For tcsh: setenv PATH /.../java/linux/jdk1.5/bin:${PATH} setenv CLASSPATH /.../java/linux/jdk1.5/lib/jre/javaws/:${CLASSPATH} For bash: export PATH=/.../java/linux/jdk1.5/bin:${PATH} export CLASSPATH=/.../java/linux/jdk1.5/lib/jre/javaws/:${CLASSPATH} doxygen 1.4.7 or 1.4.2 (optional, serves to generate documentation from code) http://www.stack.nl/~dimitri/doxygen/index.html See: borealis/report/doc/
Antlr Linux: 2.7.6 (tested with gcc 4.1.1) or 2.7.4 (tested with gcc 3.3.5) Mac: 2.7.4 Used to parse: borealis/src/modules/queryProcessor/expr/expr.g It uses java to run: $(JAVA) -cp $(ANTLR_JAR_FILE) antlr.Tool -o . expr.g http://www.antlr.org Xerces Linux: 2.7.0 (tested with gcc 4.1.1) or 2.6.0 (tested with gcc 3.5.5) Mac: 2.5.0 Used by Borealis to parse XML. http://xml.apache.org/xerces-c/ BerkeleyDB (aka db4; optional) Linux: db-4.4.20 Mac: 4.2 See: borealis/src/external/bdb/Table.cc http://www.sleepycat.com/ Glpk (optional) Linux: 4.9 or 4.8 Used by the Load Manager component. http://www.gnu.org/software/glpk/glpk.html ftp://ftp.gnu.org/gnu/glpk/ Gsl (optional) Linux: 1.8 or 1.7 Used for Predictive queries. http://www.gnu.org/software/gsl/ ftp://ftp.gnu.org/gnu/gsl/ Ocv (optional) Linux: 1.0 Used for Array processing (ASAP). http://easynews.dl.sourceforge.net/sourceforge/opencvlibrary/ TinyDb (optional; currently not in use) See: borealis/utility/stale/tinydbwraper/ http://telegraph.cs.berkeley.edu/tinydb http://www.tinydb.com
The Networking, Messaging, Servers, and Threading Library (NMSTL) is a portable, templatized C++ library for writing networking and messaging components, servers, and threaded applications. The NMSTL library, originally developed by Jon Salz, is a great library that you can use for all your C++ projects. It comes with some documentation (/nmstl/doc). You should check it out.
Template-heavy code like NMSTL and STL generates really weird-looking compiler errors, so NMSTL includes a tool called WTF to prettify error output from the GNU C++ compiler, g++. Try it and you'll be hooked.
The NMSTL code required for Borealis is distributed in the release. These are for reference purposes and are only useful for people that want to port Borealis to another platform.
expat Used by NMSTL to parse XML. http://expat.sourceforge.net readline http://cnswww.cns.cwru.edu/%7Echet/readline/rltop.html atomicity.h exchange_and_add and atomic_add Power PC: www.uclibc.org/lists/uclibc-cvs/2003-March/003194.html libncurses backtrace from glibc http://linux.tucows.com/preview/8267.html http://www.gnu.org/software/libc/libc.html high resolution timer i386 - rdtsc ppc - http://lists.apple.com/archives/mac-games-dev/2002/May/msg00244.html memalign In malloc.h - Not available for the Power PC