#!/bin/bash # Used to merge in the code needed to add TDB support to Greenstone. The script # is responsible for updating both Makefile.in and source code files. You can # later run 'disable_tdb.sh' to undo these changes. # @author John Thompson, University of Waikato, NZ echo echo '===== Removing TDB support code from Greenstone =====' echo # Test that GSDLHOME is set otherwise we won't be able to find the required files if [ "${GSDLHOME}x" == "x" ] ; then echo 'Error! GSDLHOME not set. Please source setup.bash before running.' ; echo ; exit 0 ; fi if [ "${GSDLOS}x" == "x" ] ; then echo 'Error! GSDLOS not set. Please source setup.bash before running.' ; echo ; exit 0 ; fi # Black magic to determine the actual name of the extension folder (in case I # change from tdb-edit to tdb in the future (writing in hindsight)) EXTNAME=${PWD##*/} echo ' - removing TDB support from common function library' # - Makefile.in MAKEFILE="${GSDLHOME}/common-src/src/lib/Makefile.in" sed -i 's:\(EXT_DEFINES\s*=.*\)\s-DUSE_TDB\(.*\):\1\2:' "${MAKEFILE}" sed -i 's:\(EXT_INCLUDES\s*=.*\)\s-I$(GSDL_DIR)/ext/'${EXTNAME}'/'${GSDLOS}'/include\s*-I$(GSDL_DIR)/ext/'${EXTNAME}'/src/lib\(.*\):\1\2:' "${MAKEFILE}" sed -i 's:\(EXT_SOURCES\s*=.*\)\stdbclass.cpp\(.*\):\1\2:' "${MAKEFILE}" sed -i 's:\(EXT_OBJECTS\s*=.*\)\stdbclass.o\(.*\):\1\2:' "${MAKEFILE}" # (note - NOT Makefile.in ...) rm -f "${GSDLHOME}/common-src/src/lib/Makefile" # - Remove symlink rm -f "${GSDLHOME}/common-src/src/lib/tdbclass.h" rm -f "${GSDLHOME}/common-src/src/lib/tdbclass.cpp" # - Remove compiled files rm -f "${GSDLHOME}/common-src/src/lib/tdbclass.o" rm -f "${GSDLHOME}/common-src/src/lib/gsdllib.a" echo ' - removing TDB support from collection server' # - Makefile.in MAKEFILE="${GSDLHOME}/runtime-src/src/colservr/Makefile.in" sed -i 's:\(EXT_DEFINES\s*=.*\)\s-DUSE_TDB\(.*\):\1\2:' "${MAKEFILE}" sed -i 's:\(EXT_INCLUDES\s*=.*\)\s-I$(GSDL_DIR)/ext/'${EXTNAME}'/'${GSDLOS}'/include\s*-I$(GSDL_DIR)/ext/'${EXTNAME}'/src/lib\(.*\):\1\2:' "${MAKEFILE}" rm -f "${GSDLHOME}/runtime-src/src/colservr/Makefile" # - collectset.cpp # BUG: leaves behind the newlines... SRCFILE="${GSDLHOME}/runtime-src/src/colservr/collectset.cpp" sed -i '/^#include "tdbclass.h" \/\/TDB/ d' "${SRCFILE}" sed -i '/^[ ]*if (infodbtype == "tdb") {db_ptr = new tdbclass(gsdlhome);} \/\/TDB/ d' "${SRCFILE}" sed -i '/^[ ]*if (infodbtype == "tdbserver") {db_ptr = new tdbclass(gsdlhome);} \/\/TDBServer/ d' "${SRCFILE}" # - collectserver.cpp SRCFILE="${GSDLHOME}/runtime-src/src/colservr/collectserver.cpp" sed -i '/^if (infodbtype == "tdb") { } \/\/ TDB Do nothing/ d' "${SRCFILE}" sed -i '/^if (infodbtype == "tdbserver") { } \/\/ TDBServer Do nothing/ d' "${SRCFILE}" # - Remove compiled files rm -f "${GSDLHOME}/runtime-src/src/colservr/gsdlcolservr.a" echo ' - removing TDB support from Greenstone receptionist' # - Makefile.in MAKEFILE="${GSDLHOME}/runtime-src/src/recpt/Makefile.in" sed -i 's:\(EXT_DEFINES\s*=.*\)\s-DUSE_TDB\(.*\):\1\2:' "${MAKEFILE}" sed -i 's:\(EXT_INCLUDES\s*=.*\)\s-I$(GSDL_DIR)/ext/'${EXTNAME}'/'${GSDLOS}'/include\s*-I$(GSDL_DIR)/ext/'${EXTNAME}'/src/lib\(.*\):\1\2:' "${MAKEFILE}" sed -i 's:\(EXT_LDFLAGS\s*=.*\)\s-L$(GSDL_DIR)/ext/'${EXTNAME}'/'${GSDLOS}'/lib\(.*\):\1\2:' "${MAKEFILE}" sed -i 's:\(EXT_LIBS\s*=.*\)\s-ltdb\(.*\):\1\2:' "${MAKEFILE}" rm -f "${GSDLHOME}/runtime-src/src/recpt/Makefile" # - Remove compiled files rm -f "${GSDLHOME}/runtime-src/src/recpt/gsdlrecpt.a" rm -f "${GSDLHOME}/runtime-src/src/recpt/library.cgi" rm -f "${GSDLHOME}/cgi-bin/library.cgi" echo ' - removing TDB support from OAI Server receptionist' # - Makefile.in MAKEFILE="${GSDLHOME}/runtime-src/src/oaiservr/Makefile.in" sed -i 's:\(EXT_DEFINES\s*=.*\)\s-DUSE_TDB\(.*\):\1\2:' "${MAKEFILE}" sed -i 's:\(EXT_INCLUDES\s*=.*\)\s-I$(GSDL_DIR)/ext/'${EXTNAME}'/'${GSDLOS}'/include\s*-I$(GSDL_DIR)/ext/'${EXTNAME}'/src/lib\(.*\):\1\2:' "${MAKEFILE}" sed -i 's:\(EXT_LDFLAGS\s*=.*\)\s-L$(GSDL_DIR)/ext/'${EXTNAME}'/'${GSDLOS}'/lib\(.*\):\1\2:' "${MAKEFILE}" sed -i 's:\(EXT_LIBS\s*=.*\)\s-ltdb\(.*\):\1\2:' "${MAKEFILE}" rm -f "${GSDLHOME}/runtime-src/src/oaiservr/Makefile" # - Remove compiled files rm -f "${GSDLHOME}/runtime-src/src/oaiservr/oaiserver.cgi" rm -f "${GSDLHOME}/cgi-bin/oaiserver.cgi" echo echo '=====================================================' echo echo 'TDB support has now been removed from Greenstone.' echo 'Please return to the main Greenstone directory and' echo 'rerun:' echo echo ' ./configure ' echo ' make' echo ' make install' echo echo 'to complete TDB removal.' echo echo 'Should you later wish to restore TDB support rerun:' echo echo ' ./enable_tdb.sh' echo echo '=====================================================' echo exit 0