summaryrefslogtreecommitdiffstats
path: root/new_functionality_on_rasdaman_doc.txt
blob: 477e6ee6bc7195f8b48f68479535951ac424836a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112

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

  Addition of optional hdf4 functionality on rasdaman
  Author: Bihemo Kimasa
******************************************************************


1. Making hdf4 optional for installing rasdaman

  Getting and installing hdf4 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 hdf4
  libraries. A new functionality --with-hdf4 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-hdf4 functionality, rasdaman will provide a warning
  message that hdf4 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
   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([hdf4],
	    [AS_HELP_STRING([--with-hdf4],
	      [this feature enables the inclusion of hdf4 library during installation.])],
	    [],
	    [with_hdf4=no])

      AC_MSG_NOTICE(using hdf4 library...$with_hdf4)

      if test "$with_hdf4" == yes; then
	AC_CHECK_LIB([df], [main], ,[AC_MSG_FAILURE([--with-hdf4 was given but libdf.a was not found! Please install.])])
	AC_CHECK_LIB([mfhdf], [main], ,[AC_MSG_FAILURE([--with-hdf4 was given but libmfhdf.a was not found! Please install.])])
	AC_DEFINE([HAVE_HDF], [1])
      fi

      if test "\$with_hdf4" == no; then  ## the '\' is not part of the code 
	AC_MSG_NOTICE(Warning: presence of hdf4 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 hdf4 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 hdf4 libraries are installed. For instance, 
    conversion/hdf.cc is not used whenever hdf4 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-hdf4.