diff --git a/build/bootstrap b/build/bootstrap index 75756c4bc..3b66aa48e 100755 --- a/build/bootstrap +++ b/build/bootstrap @@ -33,6 +33,10 @@ while true esac done +if [ "$INCLUDE" == "" ]; then + INCLUDE="-I$PWD/../sql -I$PWD/../include -I$PWD/../pcre" +fi + export CXXFLAGS=$INCLUDE $CXXFLAGS #TODO: these prebuilt binaries may need to be fetched @@ -117,7 +121,7 @@ then ./configure --prefix=$PREFIX else echo "BUILDING WITH DEFAULT PREFIX" - ./configure + ./configure --prefix=/usr/local/mariadb/columnstore fi #for x in \ diff --git a/configure.ac b/configure.ac index cc09b1281..529ca52c6 100644 --- a/configure.ac +++ b/configure.ac @@ -226,6 +226,7 @@ AC_CONFIG_FILES([ oamapps/traphandler/Makefile oamapps/sendtrap/Makefile oamapps/calpontSupport/Makefile + oamapps/columnstoreDB/Makefile primitives/Makefile primitives/blockcache/Makefile primitives/linux-port/Makefile @@ -233,9 +234,11 @@ AC_CONFIG_FILES([ decomsvr/Makefile procmgr/Makefile procmon/Makefile + net-snmp/Makefile snmpd/Makefile snmpd/etc/Makefile snmpd/snmpmanager/Makefile + oamapps/columnstoreSupport/Makefile tools/Makefile tools/editem/Makefile tools/cplogger/Makefile diff --git a/dbcon/dmlpackage/dml-scan.cpp b/dbcon/dmlpackage/dml-scan.cpp index c3db1d7de..4841cc119 100644 --- a/dbcon/dmlpackage/dml-scan.cpp +++ b/dbcon/dmlpackage/dml-scan.cpp @@ -27,7 +27,7 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 +#define YY_FLEX_SUBMINOR_VERSION 37 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -72,7 +72,6 @@ typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -103,6 +102,8 @@ typedef unsigned int flex_uint32_t; #define UINT32_MAX (4294967295U) #endif +#endif /* ! C99 */ + #endif /* ! FLEXINT_H */ #ifdef __cplusplus @@ -171,7 +172,12 @@ typedef unsigned int flex_uint32_t; typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif -extern int dmlleng; +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + +extern yy_size_t dmlleng; extern FILE *dmlin, *dmlout; @@ -197,11 +203,6 @@ extern FILE *dmlin, *dmlout; #define unput(c) yyunput( c, (yytext_ptr) ) -#ifndef YY_TYPEDEF_YY_SIZE_T -#define YY_TYPEDEF_YY_SIZE_T -typedef size_t yy_size_t; -#endif - #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state @@ -219,7 +220,7 @@ struct yy_buffer_state /* Number of characters read into yy_ch_buf, not including EOB * characters. */ - int yy_n_chars; + yy_size_t yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to @@ -289,8 +290,8 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ /* yy_hold_char holds the character lost when dmltext is formed. */ static char yy_hold_char; -static int yy_n_chars; /* number of characters read into yy_ch_buf */ -int dmlleng; +static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ +yy_size_t dmlleng; /* Points to current character in buffer. */ static char *yy_c_buf_p = (char *) 0; @@ -318,7 +319,7 @@ static void dml_init_buffer (YY_BUFFER_STATE b,FILE *file ); YY_BUFFER_STATE dml_scan_buffer (char *base,yy_size_t size ); YY_BUFFER_STATE dml_scan_string (yyconst char *yy_str ); -YY_BUFFER_STATE dml_scan_bytes (yyconst char *bytes,int len ); +YY_BUFFER_STATE dml_scan_bytes (yyconst char *bytes,yy_size_t len ); void *dmlalloc (yy_size_t ); void *dmlrealloc (void *,yy_size_t ); @@ -350,7 +351,7 @@ void dmlfree (void * ); /* Begin user sect3 */ -#define dmlwrap(n) 1 +#define dmlwrap() 1 #define YY_SKIP_YYWRAP typedef unsigned char YY_CHAR; @@ -889,7 +890,7 @@ FILE *dmlget_out (void ); void dmlset_out (FILE * out_str ); -int dmlget_leng (void ); +yy_size_t dmlget_leng (void ); char *dmlget_text (void ); @@ -948,7 +949,7 @@ static int input (void ); if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ - unsigned n; \ + size_t n; \ for ( n = 0; n < max_size && \ (c = getc( dmlin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ @@ -1702,21 +1703,21 @@ static int yy_get_next_buffer (void) else { - int num_to_read = + yy_size_t num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { - int new_size = b->yy_buf_size * 2; + yy_size_t new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; @@ -1747,7 +1748,7 @@ static int yy_get_next_buffer (void) /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - (yy_n_chars), (size_t) num_to_read ); + (yy_n_chars), num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } @@ -1842,7 +1843,7 @@ static int yy_get_next_buffer (void) yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 393); - return yy_is_jam ? 0 : yy_current_state; + return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_INPUT @@ -1869,7 +1870,7 @@ static int yy_get_next_buffer (void) else { /* need more input */ - int offset = (yy_c_buf_p) - (yytext_ptr); + yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) @@ -2029,10 +2030,6 @@ static void dml_load_buffer_state (void) dmlfree((void *) b ); } -#ifndef __cplusplus -extern int isatty (int ); -#endif /* __cplusplus */ - /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a dmlrestart() or at EOF. @@ -2145,7 +2142,7 @@ void dmlpop_buffer_state (void) */ static void dmlensure_buffer_stack (void) { - int num_to_alloc; + yy_size_t num_to_alloc; if (!(yy_buffer_stack)) { @@ -2237,12 +2234,12 @@ YY_BUFFER_STATE dml_scan_string (yyconst char * yystr ) /** Setup the input buffer state to scan the given bytes. The next call to dmllex() will * scan from a @e copy of @a bytes. - * @param bytes the byte buffer to scan - * @param len the number of bytes in the buffer pointed to by @a bytes. + * @param yybytes the byte buffer to scan + * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE dml_scan_bytes (yyconst char * yybytes, int _yybytes_len ) +YY_BUFFER_STATE dml_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) { YY_BUFFER_STATE b; char *buf; @@ -2329,7 +2326,7 @@ FILE *dmlget_out (void) /** Get the length of the current token. * */ -int dmlget_leng (void) +yy_size_t dmlget_leng (void) { return dmlleng; } diff --git a/oamapps/columnstoreDB/columnstoreDBWrite b/oamapps/columnstoreDB/columnstoreDBWrite new file mode 100755 index 000000000..5f8aff105 --- /dev/null +++ b/oamapps/columnstoreDB/columnstoreDBWrite @@ -0,0 +1,228 @@ +#! /bin/sh + +# columnstoreDBWrite - temporary wrapper script for .libs/columnstoreDBWrite +# Generated by libtool (GNU libtool) 2.4.2 +# +# The columnstoreDBWrite program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s/\([`"$\\]\)/\\\1/g' + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command="(cd /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/oamapps/columnstoreDB; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/justin/.local/bin:/home/justin/bin; export PATH; g++ -g0 -O3 -fno-strict-aliasing -Wall -I/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/../sql -I/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/../include -I/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/../pcre -Wl,--rpath -Wl,/usr/local/lib -Wl,--no-as-needed -Wl,--add-needed -o \$progdir/\$file columnstoreDBWrite-columnstoreDB.o -L/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/net-snmp-built-libs/lib64 /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/dbcon/joblist/.libs/libjoblist.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/dbcon/execplan/.libs/libexecplan.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/windowfunction/.libs/libwindowfunction.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/joiner/.libs/libjoiner.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/rowgroup/.libs/librowgroup.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/funcexp/.libs/libfuncexp.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/udfsdk/.libs/libudfsdk.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/dataconvert/.libs/libdataconvert.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/common/.libs/libcommon.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/compress/.libs/libcompress.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/mysqlcl_idb/.libs/libmysqlcl_idb.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/querystats/.libs/libquerystats.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/querytele/.libs/libquerytele.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/thrift/.libs/libthrift.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/threadpool/.libs/libthreadpool.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/versioning/BRM/.libs/libbrm.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/idbdatafile/.libs/libidbdatafile.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/cacheutils/.libs/libcacheutils.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/rwlock/.libs/librwlock.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/oam/oamcpp/.libs/liboamcpp.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/snmpd/snmpmanager/.libs/libsnmpmanager.so -lnetsnmpagent -lnetsnmp -lnetsnmpmibs -lnetsnmphelpers /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/messageqcpp/.libs/libmessageqcpp.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/loggingcpp/.libs/libloggingcpp.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/configcpp/.libs/libconfigcpp.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/startup/libidbboot.a /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/boost_idb/.libs/libboost_idb.so -lxml2 -lpthread -lrt -lreadline -lncurses -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/dbcon/joblist/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/dbcon/execplan/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/windowfunction/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/joiner/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/rowgroup/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/funcexp/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/udfsdk/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/dataconvert/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/common/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/compress/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/mysqlcl_idb/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/querystats/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/querytele/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/thrift/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/threadpool/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/versioning/BRM/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/idbdatafile/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/cacheutils/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/rwlock/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/oam/oamcpp/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/snmpd/snmpmanager/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/messageqcpp/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/loggingcpp/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/configcpp/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/boost_idb/.libs -Wl,-rpath -Wl,/usr/local/lib)" + +# This environment variable determines our operation mode. +if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then + # install mode needs the following variables: + generated_by_libtool_version='2.4.2' + notinst_deplibs=' /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/dbcon/joblist/libjoblist.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/dbcon/execplan/libexecplan.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/windowfunction/libwindowfunction.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/joiner/libjoiner.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/rowgroup/librowgroup.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/funcexp/libfuncexp.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/udfsdk/libudfsdk.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/dataconvert/libdataconvert.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/common/libcommon.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/compress/libcompress.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/mysqlcl_idb/libmysqlcl_idb.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/querystats/libquerystats.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/querytele/libquerytele.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/thrift/libthrift.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/threadpool/libthreadpool.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/versioning/BRM/libbrm.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/idbdatafile/libidbdatafile.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/cacheutils/libcacheutils.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/rwlock/librwlock.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/oam/oamcpp/liboamcpp.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/snmpd/snmpmanager/libsnmpmanager.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/messageqcpp/libmessageqcpp.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/loggingcpp/libloggingcpp.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/configcpp/libconfigcpp.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/boost_idb/libboost_idb.la' +else + # When we are sourced in execute mode, $file and $ECHO are already set. + if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then + file="$0" + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + ECHO="printf %s\\n" + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ which is used only on +# windows platforms, and (c) all begin with the string --lt- +# (application programs are unlikely to have options which match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's ../../libtool value, followed by no. +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=$0 + shift + for lt_opt + do + case "$lt_opt" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%/[^/]*$%%'` + test "X$lt_dump_D" = "X$lt_script_arg0" && lt_dump_D=. + lt_dump_F=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%^.*/%%'` + cat "$lt_dump_D/$lt_dump_F" + exit 0 + ;; + --lt-*) + $ECHO "Unrecognized --lt- option: '$lt_opt'" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n "$lt_option_debug"; then + echo "columnstoreDBWrite:columnstoreDBWrite:${LINENO}: libtool wrapper (GNU libtool) 2.4.2" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + $ECHO "columnstoreDBWrite:columnstoreDBWrite:${LINENO}: newargv[$lt_dump_args_N]: $lt_arg" + lt_dump_args_N=`expr $lt_dump_args_N + 1` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ + + if test -n "$lt_option_debug"; then + $ECHO "columnstoreDBWrite:columnstoreDBWrite:${LINENO}: newargv[0]: $progdir/$program" 1>&2 + func_lt_dump_args ${1+"$@"} 1>&2 + fi + exec "$progdir/$program" ${1+"$@"} + + $ECHO "$0: cannot exec $program $*" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from $@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + case " $* " in + *\ --lt-*) + for lt_wr_arg + do + case $lt_wr_arg in + --lt-*) ;; + *) set x "$@" "$lt_wr_arg"; shift;; + esac + shift + done ;; + esac + func_exec_program_core ${1+"$@"} +} + + # Parse options + func_parse_lt_options "$0" ${1+"$@"} + + # Find the directory that this script lives in. + thisdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'` + test "x$thisdir" = "x$file" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=`ls -ld "$file" | /usr/bin/sed -n 's/.*-> //p'` + while test -n "$file"; do + destdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'` + + # If there was a directory component, then change thisdir. + if test "x$destdir" != "x$file"; then + case "$destdir" in + [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;; + *) thisdir="$thisdir/$destdir" ;; + esac + fi + + file=`$ECHO "$file" | /usr/bin/sed 's%^.*/%%'` + file=`ls -ld "$thisdir/$file" | /usr/bin/sed -n 's/.*-> //p'` + done + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no + if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then + # special case for '.' + if test "$thisdir" = "."; then + thisdir=`pwd` + fi + # remove .libs from thisdir + case "$thisdir" in + *[\\/].libs ) thisdir=`$ECHO "$thisdir" | /usr/bin/sed 's%[\\/][^\\/]*$%%'` ;; + .libs ) thisdir=. ;; + esac + fi + + # Try to get the absolute directory name. + absdir=`cd "$thisdir" && pwd` + test -n "$absdir" && thisdir="$absdir" + + program=lt-'columnstoreDBWrite' + progdir="$thisdir/.libs" + + if test ! -f "$progdir/$program" || + { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /usr/bin/sed 1q`; \ + test "X$file" != "X$progdir/$program"; }; then + + file="$$-$program" + + if test ! -d "$progdir"; then + mkdir "$progdir" + else + rm -f "$progdir/$file" + fi + + # relink executable if necessary + if test -n "$relink_command"; then + if relink_command_output=`eval $relink_command 2>&1`; then : + else + printf %s\n "$relink_command_output" >&2 + rm -f "$progdir/$file" + exit 1 + fi + fi + + mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null || + { rm -f "$progdir/$program"; + mv -f "$progdir/$file" "$progdir/$program"; } + rm -f "$progdir/$file" + fi + + if test -f "$progdir/$program"; then + if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then + # Run the actual program with our arguments. + func_exec_program ${1+"$@"} + fi + else + # The program doesn't exist. + $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2 + $ECHO "This script is just a wrapper for $program." 1>&2 + $ECHO "See the libtool documentation for more information." 1>&2 + exit 1 + fi +fi diff --git a/oamapps/columnstoreSupport/columnstoreSupport b/oamapps/columnstoreSupport/columnstoreSupport new file mode 100755 index 000000000..897f0ec0a --- /dev/null +++ b/oamapps/columnstoreSupport/columnstoreSupport @@ -0,0 +1,228 @@ +#! /bin/sh + +# columnstoreSupport - temporary wrapper script for .libs/columnstoreSupport +# Generated by libtool (GNU libtool) 2.4.2 +# +# The columnstoreSupport program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s/\([`"$\\]\)/\\\1/g' + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command="(cd /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/oamapps/columnstoreSupport; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/justin/.local/bin:/home/justin/bin; export PATH; g++ -g0 -O3 -fno-strict-aliasing -Wall -I/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/../sql -I/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/../include -I/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/../pcre -Wl,--rpath -Wl,/usr/local/lib -Wl,--no-as-needed -Wl,--add-needed -o \$progdir/\$file columnstoreSupport-columnstoreSupport.o -L/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/net-snmp-built-libs/lib64 /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/dbcon/joblist/.libs/libjoblist.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/dbcon/execplan/.libs/libexecplan.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/windowfunction/.libs/libwindowfunction.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/joiner/.libs/libjoiner.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/rowgroup/.libs/librowgroup.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/funcexp/.libs/libfuncexp.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/udfsdk/.libs/libudfsdk.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/dataconvert/.libs/libdataconvert.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/common/.libs/libcommon.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/compress/.libs/libcompress.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/mysqlcl_idb/.libs/libmysqlcl_idb.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/querystats/.libs/libquerystats.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/querytele/.libs/libquerytele.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/thrift/.libs/libthrift.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/threadpool/.libs/libthreadpool.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/versioning/BRM/.libs/libbrm.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/idbdatafile/.libs/libidbdatafile.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/cacheutils/.libs/libcacheutils.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/rwlock/.libs/librwlock.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/oam/oamcpp/.libs/liboamcpp.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/snmpd/snmpmanager/.libs/libsnmpmanager.so -lnetsnmpagent -lnetsnmp -lnetsnmpmibs -lnetsnmphelpers /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/messageqcpp/.libs/libmessageqcpp.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/loggingcpp/.libs/libloggingcpp.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/configcpp/.libs/libconfigcpp.so /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/startup/libidbboot.a /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/boost_idb/.libs/libboost_idb.so -lxml2 -lpthread -lrt -lreadline -lncurses -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/dbcon/joblist/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/dbcon/execplan/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/windowfunction/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/joiner/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/rowgroup/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/funcexp/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/udfsdk/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/dataconvert/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/common/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/compress/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/mysqlcl_idb/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/querystats/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/querytele/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/thrift/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/threadpool/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/versioning/BRM/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/idbdatafile/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/cacheutils/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/rwlock/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/oam/oamcpp/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/snmpd/snmpmanager/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/messageqcpp/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/loggingcpp/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/configcpp/.libs -Wl,-rpath -Wl,/home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/boost_idb/.libs -Wl,-rpath -Wl,/usr/local/lib)" + +# This environment variable determines our operation mode. +if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then + # install mode needs the following variables: + generated_by_libtool_version='2.4.2' + notinst_deplibs=' /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/dbcon/joblist/libjoblist.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/dbcon/execplan/libexecplan.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/windowfunction/libwindowfunction.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/joiner/libjoiner.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/rowgroup/librowgroup.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/funcexp/libfuncexp.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/udfsdk/libudfsdk.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/dataconvert/libdataconvert.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/common/libcommon.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/compress/libcompress.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/mysqlcl_idb/libmysqlcl_idb.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/querystats/libquerystats.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/querytele/libquerytele.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/thrift/libthrift.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/threadpool/libthreadpool.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/versioning/BRM/libbrm.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/idbdatafile/libidbdatafile.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/cacheutils/libcacheutils.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/rwlock/librwlock.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/oam/oamcpp/liboamcpp.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/snmpd/snmpmanager/libsnmpmanager.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/messageqcpp/libmessageqcpp.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/loggingcpp/libloggingcpp.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/configcpp/libconfigcpp.la /home/justin/src/mariadb-columnstore-server/mariadb-columnstore-engine/utils/boost_idb/libboost_idb.la' +else + # When we are sourced in execute mode, $file and $ECHO are already set. + if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then + file="$0" + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + ECHO="printf %s\\n" + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ which is used only on +# windows platforms, and (c) all begin with the string --lt- +# (application programs are unlikely to have options which match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's ../../libtool value, followed by no. +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=$0 + shift + for lt_opt + do + case "$lt_opt" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%/[^/]*$%%'` + test "X$lt_dump_D" = "X$lt_script_arg0" && lt_dump_D=. + lt_dump_F=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%^.*/%%'` + cat "$lt_dump_D/$lt_dump_F" + exit 0 + ;; + --lt-*) + $ECHO "Unrecognized --lt- option: '$lt_opt'" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n "$lt_option_debug"; then + echo "columnstoreSupport:columnstoreSupport:${LINENO}: libtool wrapper (GNU libtool) 2.4.2" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + $ECHO "columnstoreSupport:columnstoreSupport:${LINENO}: newargv[$lt_dump_args_N]: $lt_arg" + lt_dump_args_N=`expr $lt_dump_args_N + 1` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ + + if test -n "$lt_option_debug"; then + $ECHO "columnstoreSupport:columnstoreSupport:${LINENO}: newargv[0]: $progdir/$program" 1>&2 + func_lt_dump_args ${1+"$@"} 1>&2 + fi + exec "$progdir/$program" ${1+"$@"} + + $ECHO "$0: cannot exec $program $*" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from $@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + case " $* " in + *\ --lt-*) + for lt_wr_arg + do + case $lt_wr_arg in + --lt-*) ;; + *) set x "$@" "$lt_wr_arg"; shift;; + esac + shift + done ;; + esac + func_exec_program_core ${1+"$@"} +} + + # Parse options + func_parse_lt_options "$0" ${1+"$@"} + + # Find the directory that this script lives in. + thisdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'` + test "x$thisdir" = "x$file" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=`ls -ld "$file" | /usr/bin/sed -n 's/.*-> //p'` + while test -n "$file"; do + destdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'` + + # If there was a directory component, then change thisdir. + if test "x$destdir" != "x$file"; then + case "$destdir" in + [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;; + *) thisdir="$thisdir/$destdir" ;; + esac + fi + + file=`$ECHO "$file" | /usr/bin/sed 's%^.*/%%'` + file=`ls -ld "$thisdir/$file" | /usr/bin/sed -n 's/.*-> //p'` + done + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no + if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then + # special case for '.' + if test "$thisdir" = "."; then + thisdir=`pwd` + fi + # remove .libs from thisdir + case "$thisdir" in + *[\\/].libs ) thisdir=`$ECHO "$thisdir" | /usr/bin/sed 's%[\\/][^\\/]*$%%'` ;; + .libs ) thisdir=. ;; + esac + fi + + # Try to get the absolute directory name. + absdir=`cd "$thisdir" && pwd` + test -n "$absdir" && thisdir="$absdir" + + program=lt-'columnstoreSupport' + progdir="$thisdir/.libs" + + if test ! -f "$progdir/$program" || + { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /usr/bin/sed 1q`; \ + test "X$file" != "X$progdir/$program"; }; then + + file="$$-$program" + + if test ! -d "$progdir"; then + mkdir "$progdir" + else + rm -f "$progdir/$file" + fi + + # relink executable if necessary + if test -n "$relink_command"; then + if relink_command_output=`eval $relink_command 2>&1`; then : + else + printf %s\n "$relink_command_output" >&2 + rm -f "$progdir/$file" + exit 1 + fi + fi + + mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null || + { rm -f "$progdir/$program"; + mv -f "$progdir/$file" "$progdir/$program"; } + rm -f "$progdir/$file" + fi + + if test -f "$progdir/$program"; then + if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then + # Run the actual program with our arguments. + func_exec_program ${1+"$@"} + fi + else + # The program doesn't exist. + $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2 + $ECHO "This script is just a wrapper for $program." 1>&2 + $ECHO "See the libtool documentation for more information." 1>&2 + exit 1 + fi +fi diff --git a/utils/loggingcpp/errorids.h b/utils/loggingcpp/errorids.h index dbd44c9f0..0182e319c 100644 --- a/utils/loggingcpp/errorids.h +++ b/utils/loggingcpp/errorids.h @@ -1,5 +1,4 @@ /* Copyright (C) 2014 InfiniDB, Inc. - Copyright (C) 2016 MariaDB Corporaton This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License