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 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.
|