summaryrefslogtreecommitdiffstats
path: root/new_functionality_on_rasdaman_doc.txt
diff options
context:
space:
mode:
Diffstat (limited to 'new_functionality_on_rasdaman_doc.txt')
-rw-r--r--new_functionality_on_rasdaman_doc.txt112
1 files changed, 112 insertions, 0 deletions
diff --git a/new_functionality_on_rasdaman_doc.txt b/new_functionality_on_rasdaman_doc.txt
new file mode 100644
index 0000000..8045328
--- /dev/null
+++ b/new_functionality_on_rasdaman_doc.txt
@@ -0,0 +1,112 @@
+
+*****************************************************************
+
+ Addition of optional hdf functionality on rasdaman
+ Author: Bihemo Kimasa
+******************************************************************
+
+
+1. Making hdf4 optional for installing rasdaman
+
+ Getting and installing hdf libraries can be a daunting
+ task. Previous versions of rasdaman required by default
+ that these libraries be found on the system before it
+ could be configured and hence successfully installed.
+
+ It is now possible to install rasdaman with/out hdf
+ libraries. A new functionality --with-hdf that can be
+ passed when configuring rasdaman has been added. The
+ functionality works by checking whether libdf.a and
+ libmhdf.a are installed. If these libraries are found a
+ new variable HAVE_HDF with value 1 is passed to the
+ compiler. This variable is included in conversion/hdf.cc
+ and conversion/convfactory.cc sources for conditional
+ compilation. An error message is printed otherwise.
+
+ If the user choses to configure rasdaman without invoking
+ --with-hdf functionality, rasdaman will provide a warning
+ message that hdf presence was not checked but that the user
+ would need them in order to use rasdaman. These libraries
+ are particularly needed for work with rascontrol and hence
+ interact with the servers/database.
+
+ Until the time I was writing this report rasdaman supported
+ hdf version 4 libraries. Earlier or later versions were
+ incompatible. For a successful work with rasdaman the
+ user must ensure that the right version is installed.
+
+ The following is the piece of code that has been added in
+ the configure.ac script. It should be easy to find it.
+
+ AC_ARG_WITH([hdf],
+ [AS_HELP_STRING([--with-hdf],
+ [this feature enables the inclusion of hdf library during installation.])],
+ [],
+ [with_hdf=no])
+
+ AC_MSG_NOTICE(using hdf library...$with_hdf)
+
+ if test "$with_hdf" == yes; then
+ AC_CHECK_LIB([df], [main], ,[AC_MSG_FAILURE([--with-hdf was given but libdf.a was not found! Please install.])])
+ AC_CHECK_LIB([mfhdf], [main], ,[AC_MSG_FAILURE([--with-hdf was given but libmfhdf.a was not found! Please install.])])
+ AC_DEFINE([HAVE_HDF], [1])
+ fi
+
+ if test "\$with_hdf" == no; then ## the '\' is not part of the code
+ AC_MSG_NOTICE(Warning: presence of hdf libraries not checked. To run rasdaman you will need to have them installed!)
+ fi
+
+ Also in the conversion/hdf.cc and conversion/convfactory.cc
+ the conditional compilation variable HAVE_HDF has been included.
+ This again is easy to find when one looks at the source codes.
+
+
+
+ 2. "How to install" instructions
+
+ An updated list of packages needed should look like the following:
+
+ Rasdaman requires a Linux kernel 2.6.18 or higher. Successful
+ installations are reported for Kubuntu, SuSE, Red Hat, Mandrake
+ distributions. (Let us know about further ones!)
+
+ Aside from the standard packages which should be available on any
+ vanilla Linux, the following list has to be installed:
+
+
+ -tools:
+ git-core, make, autoconf, automake, libtool, gawk, flex, bison,
+ ant, gcc-c++, libstdc++, sun-java6-jdk, Tomcat (or another suitable
+ servlet container).
+
+ -general libraries:
+ libreadline-dev, libopenssl-devel, libncurses5-dev database stuff:
+ PostgreSQL 8.x, libecpg-dev; Warning: do not use versions PG 8.3.0
+ to 8.3.6 inclusive, it won't work.
+
+ -image formats:
+ libtiff-dev, libjpeg-dev, libpng12-dev, libnetpbm10-dev
+
+ -Optionally, the performance boosters and additional service components
+ offered by rasdaman GmbH can be installed. Also to use rasdaman you
+ will need to ensure that libhdf4g-dev (note the version) is installed.
+
+
+
+ 3. Recommendations
+
+
+ The following should be kept in mind for the people working on rasdaman:
+
+ Although it is now possible to install rasdaman without hdf libraries, it
+ is not to be expected that one would be able to interact with it via the
+ servers/database successfully. This is because the source codes
+ conversion/hdf.* and conversion/convfactory.cc have all or part of their
+ code section compiled only when hdf libraries are installed. For instance,
+ conversion/hdf.cc is not used whenever hdf is not included when configuring.
+ This means all makefiles lack the HAVE_HDF conditional compilational variable
+ necessary for their inclusion on installing rasdaman. I feel that this could
+ limit how one interacts with rasdaman servers. It is necessary to understand
+ that conversion/hdf.* are important files for rasdaman to work.
+
+ I recommend that for now rasdaman should only be configured --with-hdf.