Re: [MonetDB-users] Compile problems (CVS, Ubuntu 7.04) (Java Client JDBC Version)

OK, actually going to use CVS, since that's probably easier. Just a
point about compiling the Java client (which as far as I can tell, is
required for install MonetDB4-server): it doesn't compile with the
version of JDBC shipped in Sun JDK 6. Basically, the JDBC interfaces
have been extended and so we get errors about 'class is not abstract
and does not override method ...'. I fixed this the first time by
adding stubs that just threw OperationNotSupportedException. Then it
compiled.
R.
On 5/27/07, Ramon Nogueira
Hehe, ok I can't resist. Gonna try again with the install script and the tricks to prevent downloading again and again. I have clean all traces of MonetDB from my machine. If you can't provide a .deb, what about a precompiled set of binaries for generic Linux, statically linked with all dependencies. Its not pretty, but it would be easy for the users. The problem with the rpms on my Ubuntu system is basically that Debian uses a different versioning scheme for the shared libraries (the ones I had problems with were libssl and libcrypto). Couldn't you just statically link these in and then provide a simple install script? Many, many people use Debian-based systems and it would greatly improve coverage for MonetDB. I will do what I can to help if this compile goes well.
R.
On 5/26/07, Stefan Manegold
wrote: Ramon,
once you have time and bandwidth, could you please first remove any remains of MonetDB (sources, builddirs, anything installed in you chosen prefix of buildtools, MonetDB, clinerts, MonetDB4, pathfinder, etc.), and then try from scratch, again, the way you prefer to install MonetDB. Stop as soon as the first problem occurs (if any ;-)) and report it here.
Unfortunaltely, we do not have (access to) any Debian and/or Ubuntu (anymore), hence, we cannot provide any .deb packages.
Kind regards,
Stefan
On Sat, May 26, 2007 at 10:24:55AM +0200, Ramon Nogueira wrote:
Yup, first I tried installing from the "Super Source Tarball"; then from `alien'ed rpm; then individual tarballs; the install script; then CVS! The problem with the install script is that it downloads things afresh each time and I really can't afford that (I am in South Africa where unfortunately, we still need to think about bandwidth). Here is the (different) error I get when I try to compile the pathfinder source tarball from sourceforge (against CVS components):
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I. -I/usr/local/include/MonetDB -I/usr/local/include/MonetDB/common -I/usr/local/include/MonetDB/gdk -I/usr/local/include/MonetDB4 -I/usr/local/include/MonetDB4/monet -I/usr/local/include/MonetDB4/plain -I/usr/local/include/MonetDB4/contrib -I/usr/local/include/MonetDB4/mapi -I/usr/local/include/MonetDB4/calibrator -I/usr/include/libxml2 -I../compiler/include -I./../compiler/include -DLIBPATHFINDER -O2 -std=c99 -O6 -fomit-frame-pointer -finline-functions -falign-loops=4 -falign-jumps=4 -falign-functions=4 -fexpensive-optimizations -funroll-loops -frerun-cse-after-loop -frerun-loop-opt -Wno-declaration-after-statement -DEMBEDDED -DMT -DNO_CGI -DNO_AUTH -DIO_MAX=10240 -c pathfinder.c -fPIC -DPIC -o .libs/lib_pathfinder_la-pathfinder.o /export/scratch0/monet/monet.GNU.64.64.d.14791/pathfinder/runtime/pathfinder.mx: In function 'xquery_function_call': /export/scratch0/monet/monet.GNU.64.64.d.14791/pathfinder/runtime/pathfinder.mx:3980: error: expected ')' before 'LLFMT' /export/scratch0/monet/monet.GNU.64.64.d.14791/pathfinder/runtime/pathfinder.mx:5417:34: error: macro "MT_init_lock" requires 2 arguments, but only 1 given /export/scratch0/monet/monet.GNU.64.64.d.14791/pathfinder/runtime/pathfinder.mx: In function 'xquery_prelude': /export/scratch0/monet/monet.GNU.64.64.d.14791/pathfinder/runtime/pathfinder.mx:5417: error: 'MT_init_lock' undeclared (first use in this function) /export/scratch0/monet/monet.GNU.64.64.d.14791/pathfinder/runtime/pathfinder.mx:5417: error: (Each undeclared identifier is reported only once /export/scratch0/monet/monet.GNU.64.64.d.14791/pathfinder/runtime/pathfinder.mx:5417: error: for each function it appears in.) /export/scratch0/monet/monet.GNU.64.64.d.14791/pathfinder/runtime/pathfinder.mx:5418:32: error: macro "MT_init_lock" requires 2 arguments, but only 1 given /export/scratch0/monet/monet.GNU.64.64.d.14791/pathfinder/runtime/pathfinder.mx:5419:31: error: macro "MT_init_lock" requires 2 arguments, but only 1 given make[4]: *** [lib_pathfinder_la-pathfinder.lo] Error 1 make[4]: Leaving directory `/home/ramon/software/monetdb/pathfinder-0.16.2/runtime' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/home/ramon/software/monetdb/pathfinder-0.16.2/runtime' make[2]: *** [all] Error 2 make[2]: Leaving directory `/home/ramon/software/monetdb/pathfinder-0.16.2/runtime' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/ramon/software/monetdb/pathfinder-0.16.2' make: *** [all] Error 2
On 5/26/07, Stefan Manegold
wrote: Hi Ramon,
On Sat, May 26, 2007 at 08:37:26AM +0200, Ramon Nogueira wrote:
Thanks for such a rapid response!
welcome --- you were just "lucky" ;-)
I checked out the source from CVS (including buildtools, I forgot to mention that) with the following command: cvs -d:pserver:anonymous@monetdb.cvs.sourceforge.net:/cvsroot/monetdb checkout (buildtools|MonetDB|MonetDB4|pathfinder}.
looks good (well, I'm sure you also included clients, as you mentioned in your first email).
I'm not too savvy wrt CVS, so not sure if this represents the latest code.
It is --- well, provided SourceForge does not run the anonymous pserver access on backup server that run behind (again), but even then the conpilation should work fine ...
For calling configure, I did not specify any other command line parameters (just ./configure). I created separate build directories build/MonetDB, build/pathfinder... and issued the ./configure and make commands in those directories after doing ./bootstrap in the source directories. I also tries following the instructions in the file pathfinder/INSTALL which instructed me to do the configure/make in the same directory as the source with the same error.
sounds just right --- hence, I'm puzzled; I have no idea, yet(?), what causes this problem (i.e., where the bogus path /export/scratch1/monet/monet.GNU.32.32.d.14791/MonetDB/.GNU.32.32.d-Fedora6/ come from...
Do you by any chance have a previous source (CVS or tarball) or binary (RPM) installation of MonetDB on your machine? Possibly even the remains of an uncomplete/aborted/failed RPM installation?
Stefan
On 5/26/07, Stefan Manegold
wrote: Hi Ramon,
thank you very much for using MonetDB, and sorry for the inconvenience with compiling pathfinder.
The error looks indeed strange. Actually it make me wonder whether you indeed (try to) compile the CVS code base (and if so which one, the latest HEAD or some release branch?) or whether you are using the source tarballs? Of course, `bootstrap` is only required for the CVS version, but you do not mention buildtools, which is also required (only) for the CVS version. The requested but not found path (/export/scratch1/monet/monet.GNU.32.32.d.14791/MonetDB/.GNU.32.32.d-Fedora6/lib/libbat.la) is (as far as I can see) not contained in our CVS source base (except from some testing stable output), but *might* be in the source tarballs (though it should be ignored there.
To analyse the problem further could you please send us the complete commandlines of you `configure` call for buildtools, MonetDB, clients, MonetDB4 & pathfinder?
Kind regards
Stefan
On Sat, May 26, 2007 at 07:58:05AM +0200, Ramon Nogueira wrote: > Hi, > > Trying to install MonetDB4 and pathfinder from CVS. I succeeded in > compiling and installing (into /usr/local) MonetDB, client and > MonetDB4 modules. `bootstrap' and `configure' both succeed from > pathfinder, but `make' produces the following error. Also, on another > note, I think it should be made clearer that installation of `client' > is a prerequisite for MonetDB4 server since this is quite a > counterintuitive order of dependency (server on client). I am on Linux > 2.6.20-15-generic i686 GNU/Linux. > > Output from `make': > --------------------------------------------------------------------------- > (cd .libs && rm -f libpf.la && ln -s ../libpf.la libpf.la) > /bin/bash ../libtool --tag=CC --mode=link gcc -DLIBPF_SUPPORT -g > -O2 -Wall -Wextra -std=c99 -Werror-implicit-function-declaration > -Werror -Wpointer-arith -Wdeclaration-after-statement > -Wno-declaration-after-statement -DEMBEDDED -DMT -DNO_CGI -DNO_AUTH > -DIO_MAX=10240 -o lib_pf_support.la -rpath > /usr/local/lib/MonetDB4/lib lib_pf_support_la-pf_support.glue.lo > lib_pf_support_la-pf_support.lo lib_pf_support_la-staircasejoin.lo > lib_pf_support_la-prec_foll.lo lib_pf_support_la-shredder.lo > libserialize.la libpf.la -lxml2 -L/usr/lib -lxml2 -ldl > -L/usr/local/lib -lbat -lstream -L/usr/local/lib -lmonet -lpthread > -L/usr/local/lib/MonetDB4/lib -l_lock -l_monettime -l_streams > -l_builtin -l_ascii_io -l_algebra -l_constant > gcc -shared .libs/lib_pf_support_la-pf_support.glue.o > .libs/lib_pf_support_la-pf_support.o > .libs/lib_pf_support_la-staircasejoin.o > .libs/lib_pf_support_la-prec_foll.o .libs/lib_pf_support_la-shredder.o > -Wl,--whole-archive ./.libs/libserialize.a ./.libs/libpf.a > -Wl,--no-whole-archive -Wl,--rpath -Wl,/usr/local/lib/MonetDB4/lib > -Wl,--rpath -Wl,/usr/local/lib/MonetDB4/lib -L/usr/lib > /usr/lib/libxml2.so -ldl -L/usr/local/lib /usr/lib/libbat.so > /usr/lib/libstream.so /usr/lib/libmonet.so -lpthread > -L/usr/local/lib/MonetDB4/lib /usr/local/lib/MonetDB4/lib/lib_lock.so > /usr/local/lib/MonetDB4/lib/lib_monettime.so > /usr/local/lib/MonetDB4/lib/lib_streams.so > /usr/local/lib/MonetDB4/lib/lib_builtin.so > /usr/local/lib/MonetDB4/lib/lib_ascii_io.so > /usr/local/lib/MonetDB4/lib/lib_algebra.so > /usr/local/lib/MonetDB4/lib/lib_constant.so -Wl,-soname > -Wl,lib_pf_support.so.0 -o .libs/lib_pf_support.so.0.0.0 > (cd .libs && rm -f lib_pf_support.so.0 && ln -s > lib_pf_support.so.0.0.0 lib_pf_support.so.0) > (cd .libs && rm -f lib_pf_support.so && ln -s lib_pf_support.so.0.0.0 > lib_pf_support.so) > creating lib_pf_support.la > /bin/sed: can't read > /export/scratch1/monet/monet.GNU.32.32.d.14791/MonetDB/.GNU.32.32.d-Fedora6/lib/libbat.la: > No such file or directory > libtool: link: `/export/scratch1/monet/monet.GNU.32.32.d.14791/MonetDB/.GNU.32.32.d-Fedora6/lib/libbat.la' > is not a valid libtool archive > make[2]: *** [lib_pf_support.la] Error 1 > make[2]: *** Deleting file `lib_pf_support.la' > make[2]: Leaving directory `/home/ramon/software/monetdb/cvs/pathfinder/runtime' > make[1]: *** [all-recursive] Error 1 > make[1]: Leaving directory `/home/ramon/software/monetdb/cvs/pathfinder' > make: *** [all] Error 2 > > ----------------------------------------------------------------------------- > > Your help is greatly appreciated. > > Ramon Nogueira > > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > MonetDB-users mailing list > MonetDB-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/monetdb-users > >
-- | Dr. Stefan Manegold | mailto:Stefan.Manegold@cwi.nl | | CWI, P.O.Box 94079 | http://www.cwi.nl/~manegold/ | | 1090 GB Amsterdam | Tel.: +31 (20) 592-4212 | | The Netherlands | Fax : +31 (20) 592-4312 |
------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ MonetDB-users mailing list MonetDB-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/monetdb-users
-- | Dr. Stefan Manegold | mailto:Stefan.Manegold@cwi.nl | | CWI, P.O.Box 94079 | http://www.cwi.nl/~manegold/ | | 1090 GB Amsterdam | Tel.: +31 (20) 592-4212 | | The Netherlands | Fax : +31 (20) 592-4312 |
------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ MonetDB-users mailing list MonetDB-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/monetdb-users
-- | Dr. Stefan Manegold | mailto:Stefan.Manegold@cwi.nl | | CWI, P.O.Box 94079 | http://www.cwi.nl/~manegold/ | | 1090 GB Amsterdam | Tel.: +31 (20) 592-4212 | | The Netherlands | Fax : +31 (20) 592-4312 |

On 27-05-2007 09:32:04 +0200, Ramon Nogueira wrote:
OK, actually going to use CVS, since that's probably easier. Just a point about compiling the Java client (which as far as I can tell, is required for install MonetDB4-server): it doesn't compile with the version of JDBC shipped in Sun JDK 6. Basically, the JDBC interfaces have been extended and so we get errors about 'class is not abstract and does not override method ...'. I fixed this the first time by adding stubs that just threw OperationNotSupportedException. Then it compiled.
I made a try with this in the 1_6 branch, but never finished, because amongst others, it makes JDBC incompatible with 1.4 and 1.5 Java compilers. This is a bug, and the solution is to have configure check for Java 1.4 or 1.5, and abort otherwise.

A better solution (IMO) would be to have the JDBC classes extend
abstract classes that actually implement the JDBC interfaces and just
thrown OperationNotSupportedException for all methods. Then the
subclasses can selectively override the methods they support. This
will make it work on both JDBC 3 and 4. Then gradually implement the
additional methods.
On 5/27/07, Fabian Groffen
On 27-05-2007 09:32:04 +0200, Ramon Nogueira wrote:
OK, actually going to use CVS, since that's probably easier. Just a point about compiling the Java client (which as far as I can tell, is required for install MonetDB4-server): it doesn't compile with the version of JDBC shipped in Sun JDK 6. Basically, the JDBC interfaces have been extended and so we get errors about 'class is not abstract and does not override method ...'. I fixed this the first time by adding stubs that just threw OperationNotSupportedException. Then it compiled.
I made a try with this in the 1_6 branch, but never finished, because amongst others, it makes JDBC incompatible with 1.4 and 1.5 Java compilers. This is a bug, and the solution is to have configure check for Java 1.4 or 1.5, and abort otherwise.
------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ MonetDB-users mailing list MonetDB-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/monetdb-users

On 27-05-2007 10:51:35 +0200, Ramon Nogueira wrote:
A better solution (IMO) would be to have the JDBC classes extend abstract classes that actually implement the JDBC interfaces and just thrown OperationNotSupportedException for all methods. Then the subclasses can selectively override the methods they support. This will make it work on both JDBC 3 and 4. Then gradually implement the additional methods.
No, as the methods in JDBC4 have classes in their signature that do not exist in JDBC3.
participants (2)
-
Fabian Groffen
-
Ramon Nogueira