diff --git a/src/install/Makefile.in b/src/install/Makefile.in new file mode 100644 index 0000000000..90633fafc6 --- /dev/null +++ b/src/install/Makefile.in @@ -0,0 +1,222 @@ +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# Alternatively, the contents of this file may be used under the +# terms of the GNU General Public License Version 2 or later (the +# "GPL"), in which case the provisions of the GPL are applicable +# instead of those above. You may obtain a copy of the Licence at +# http://www.gnu.org/copyleft/gpl.html +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# Relevant for more details. +# +# This file was created by members of the firebird development team. +# All individual contributions remain the Copyright (C) of those +# individuals. Contributors to this file are either listed here or +# can be obtained from a CVS history command. +# +# All rights reserved. +# +# Created by: Mark O'Donohue +# +# Contributor(s): +# +# +# $Id: Makefile.in,v 1.1 2001-08-01 07:59:14 skywalker Exp $ +# + +ROOT=../.. + + + +include $(ROOT)/src/make.rules +include $(ROOT)/src/make.defaults +include $(ROOT)/src/make.platform +include $(ROOT)/src/make.shared.variables + +INSTALLDIR=@prefix@ + + @SET_MAKE@ + + + +.PHONY: all CSrpmscript SSrpmscript ssinstall runclassicinstall \ + classicpackages + + +# Some of these targets are run from the root tree of the build. +# those need to know where the install subdirectory is kept. +# Others are run locally these need to know the path back to the +# root of the build tree. + +BuildRoot=$(GEN_ROOT) + +InstallRoot=$(SRC_ROOT)/src/install/linux +RedhatPackageDir=/usr/src/redhat/RPMS/i386 + +Version=1.5.0-1 + + +ClassicTarFile=FirebirdCS-$(Version).tar.gz +SuperTarFile=FirebirdSS-$(Version).tar.gz + +ClassicRPMFile=FirebirdCS-$(Version).i386.rpm +SuperRPMFile=FirebirdSS-$(Version).i386.rpm + +ClassicSrcDir=$(InstallRoot)/classic +SuperSrcDir=$(InstallRoot)/super + +LastClassicInstallFlg=.classicinstallflg +LastSuperInstallFlg=.superinstallflg + +install: + @echo "you need to make a choice here " + @echo "make target" + @echo "" + @echo "Firebird classic targets:" + @echo "runclassicinstall - install classic from build tree" + @echo "classicpackages - build tar and rpm install files" + @echo "classictarfile - build tar install file" + @echo "classicrpmfile - build redhat rpm install file" + @echo "" + @echo "Firebird super targets:" + @echo "runsuperinstall - install super from build tree" + @echo "superpackages - build tar and rpm install files" + @echo "supertarfile - build tar install file" + @echo "superrpmfile - build redhat rpm install file" + @echo "" + +all2: CSrpmscript SSrpmscript csinstall ssinstall + + +classicpackages: classictarfile classicrpmfile + +runclassicinstall: $(LastClassicInstallFlg) + + +classictarfile: runclassicinstall $(ClassicTarFile) + +classicrpmfile: runclassicinstall $(ClassicRPMFile) + + +$(LastClassicInstallFlg) : $(BIN)/gsec + sh $(InstallRoot)/classic/CSTarInstall.sh + touch $(LastClassicInstallFlg) + +$(ClassicTarFile) : csinstall runclassicinstall + mv csinstall install + tar -czf $(ClassicTarFile) install + mv install csinstall + + +$(ClassicRPMFile): CSrpmscript + rpm -bb CSrpmscript + cp $(RedhatPackageDir)/$(ClassicRPMFile) . + + +superpackages: supertarfile superrpmfile + +runsuperinstall: $(LastSuperInstallFlg) + + +supertarfile: runsuperinstall $(SuperTarFile) + +superrpmfile: runsuperinstall $(SuperRPMFile) + + +$(LastSuperInstallFlg) : interbase/bin/gsec + sh $(InstallRoot)/super/SSTarInstall.sh + touch $(LastSuperInstallFlg) + +$(SuperTarFile) : ssinstall runsuperinstall + mv ssinstall install + tar -czf $(SuperTarFile) install + mv install ssinstall + + +$(SuperRPMFile): SSrpmscript + rpm -bb SSrpmscript + cp $(RedhatPackageDir)/$(SuperRPMFile) . + + +CSrpmscript: + echo $@ + cat $(ClassicSrcDir)/CSrpmheader.txt > $@ + echo "" >> $@ + echo "%prep" >> $@ +# cat $(ClassicSrcDir)/CSprepinstall.sh >> $@ + echo "" >> $@ + echo "%build" >> $@ +# cat $(ClassicSrcDir)/CSbuildinstall.sh >> $@ + echo "" >> $@ + echo "%install" >> $@ +# cat $(ClassicSrcDir)/CSinstall.sh >> $@ + echo "" >> $@ + echo "%files" >> $@ + cat $(ClassicSrcDir)/CSrpmfiles.txt >> $@ + echo "" >> $@ + echo "%pre" >> $@ + cat $(ClassicSrcDir)/CSpreinstall.sh >> $@ + echo "" >> $@ + echo "%post" >> $@ + cat $(ClassicSrcDir)/CSpostinstall.sh >> $@ + echo "" >> $@ + echo "%preun" >> $@ + cat $(ClassicSrcDir)/CSpreuninstall.sh >> $@ + echo "" >> $@ + echo "%postun" >> $@ + cat $(ClassicSrcDir)/CSpostuninstall.sh >> $@ + +SSrpmscript: + echo $@ + cat $(SuperSrcDir)/SSrpmheader.txt > $@ + echo "" >> $@ + echo "%prep" >> $@ +# cat $(SuperSrcDir)/SSprepinstall.sh >> $@ + echo "" >> $@ + echo "%build" >> $@ +# cat $(SuperSrcDir)/SSbuildinstall.sh >> $@ + echo "" >> $@ + echo "%install" >> $@ +# cat $(SuperSrcDir)/SSinstall.sh >> $@ + echo "" >> $@ + echo "%files" >> $@ + cat $(SuperSrcDir)/SSrpmfiles.txt >> $@ + echo "" >> $@ + echo "%pre" >> $@ + cat $(SuperSrcDir)/SSpreinstall.sh >> $@ + echo "" >> $@ + echo "%post" >> $@ + cat $(SuperSrcDir)/SSpostinstall.sh >> $@ + echo "" >> $@ + echo "%preun" >> $@ + cat $(SuperSrcDir)/SSpreuninstall.sh >> $@ + echo "" >> $@ + echo "%postun" >> $@ + cat $(SuperSrcDir)/SSpostuninstall.sh >> $@ + + +CSTarInstallDir=csinstall + +csinstall: + mkdir -p $(CSTarInstallDir)/scripts +# (cd $(BuildRoot); tar -czf - interbase ) | cat > $(CSTarInstallDir)/interbase.tar.gz + cp $(ClassicSrcDir)/CSpreinstall.sh $(CSTarInstallDir)/scripts + cp $(ClassicSrcDir)/CSinstall.sh $(CSTarInstallDir)/scripts + cp $(ClassicSrcDir)/CSpostinstall.sh $(CSTarInstallDir)/scripts + cp $(ClassicSrcDir)/CSTarInstall.sh $(CSTarInstallDir)/install.sh + tar -czf $(CSTarInstallDir)/interbase.tar.gz interbase + +SSTarInstallDir=ssinstall + +ssinstall: + mkdir -p $(SSTarInstallDir)/scripts + cp $(SuperSrcDir)/SSpreinstall.sh $(SSTarInstallDir)/scripts + cp $(SuperSrcDir)/SSinstall.sh $(SSTarInstallDir)/scripts + cp $(SuperSrcDir)/SSpostinstall.sh $(SSTarInstallDir)/scripts + cp $(SuperSrcDir)/SSTarInstall.sh $(SSTarInstallDir)/install.sh + tar -czf $(SSTarInstallDir)/interbase.tar.gz interbase diff --git a/src/install/arch-specific/linux/CSrpmscript b/src/install/arch-specific/linux/CSrpmscript new file mode 100644 index 0000000000..2df43369b6 --- /dev/null +++ b/src/install/arch-specific/linux/CSrpmscript @@ -0,0 +1,697 @@ +Summary: Firebird Relational Database Server and Client tools. +Name: FirebirdCS +Version: 0.9 +Release: 1 +Copyright: Distributable +Group: Applications/Databases +Source: FirebirdCS0.9src.tar.gz +URL: http://firebird.sourceforge.net +Prefix: /opt +AutoReqProv: no +# BuildRoot: /var/tmp/%{name}-buildroot + +%description +Firebird is a powerful, high-performance relational database designed to be embedded into +applications on multiple platforms. + + +%prep + +%build + +%install + +%files +%dir /opt/interbase +%dir /opt/interbase/bin +%dir /opt/interbase/lib +%dir /opt/interbase/UDF +%dir /opt/interbase/intl +%dir /opt/interbase/help + +/opt/interbase/bin/gds_inet_server +/opt/interbase/bin/gbak +/opt/interbase/bin/gdef +/opt/interbase/bin/gds_lock_print +/opt/interbase/bin/gds_lock_mgr +/opt/interbase/bin/gds_pipe +/opt/interbase/bin/gds_drop +/opt/interbase/bin/gfix +/opt/interbase/bin/gpre +/opt/interbase/bin/gsec +/opt/interbase/bin/gsplit +/opt/interbase/bin/gstat +/opt/interbase/bin/isc4.gbak +/opt/interbase/bin/isql +/opt/interbase/bin/qli + +/opt/interbase/examples + +/opt/interbase/help/help.gbak +%attr(666, -, -) /opt/interbase/help/help.gdb + +/opt/interbase/include + +/usr/include/gds.h +/usr/include/iberror.h +/usr/include/ibase.h +/usr/include/ib_util.h + +#/opt/interbase/doc + +/opt/interbase/README +/opt/interbase/interbase.msg +%attr(666, -, -) /opt/interbase/isc4.gdb +/opt/interbase/isc_config + +/usr/lib/libgds.so.0 +/usr/lib/libgds.so +/usr/lib/libib_util.so +/usr/lib/libgds_pyxis.a +/usr/lib/libgds.a +/opt/interbase/intl/gdsintl +/opt/interbase/UDF/ib_udf +/opt/interbase/services.isc + + + + + + + +%pre +#!/bin/sh + + +# The pre install routine for Firebird Classic + + +#------------------------------------------------------------------------ +# Prompt for response, store result in Answer + +Answer="" + +AskQuestion() { + Test=$1 + DefaultAns=$2 + echo -n "${1}" + Answer="$DefaultAns" + read Answer +} + + +#------------------------------------------------------------------------ +# stop super server if it is running +# Also will only stop firebird, since that has the init script + + +stopServerIfRunning() { + + checkString=`ps -efww| egrep "(ibserver|ibguard)" |grep -v grep` + + if [ ! -z "$checkString" ] + then + if [ -f /etc/rc.d/init.d/firebird ] + then + /etc/rc.d/init.d/firebird stop + fi + fi +} + +#------------------------------------------------------------------------ +# stop server if it is running + + +checkIfServerRunning() { + + + stopServerIfRunning + +# Check is server is being actively used. + + checkString=`ps -efww| egrep "(ibserver|ibguard)" |grep -v grep` + + if [ ! -z "$checkString" ] + then + echo "An instance of the Firebird/InterBase Super server seems to be running." + echo "Please quit all interbase applications and then proceed" + exit 1 + fi + + checkString=`ps -efww| egrep "(gds_inet_server|gds_pipe)" |grep -v grep` + + if [ ! -z "$checkString" ] + then + echo "An instance of the Firebird/InterBase server seems to be running." + echo "Please quit all interbase applications and then proceed." + exit 1 + fi + + + +# Stop lock manager if it is the only thing running. + + for i in `ps -efww | grep "gds_lock_mgr" | grep -v "grep" | awk '{print $2}' ` + do + kill $i + done + + +} + +#------------------------------------------------------------------------ +# Run process and check status + + +runAndCheckExit() { + Cmd=$* + +# echo $Cmd + $Cmd + + ExitCode=$? + + if [ $ExitCode -ne 0 ] + then + echo "Install aborted: The command $Cmd " + echo " failed with error code $ExitCode" + exit $ExitCode + fi +} + + +#------------------------------------------------------------------------ +# Display message if this is being run interactively. + + +displayMessage() { + + msgText=$1 + if [ ! -z "$InteractiveInstall" ] + then + echo $msgText + fi +} + + +#------------------------------------------------------------------------ +# Archive any existing prior installed files. +# The 'cd' stuff is to avoid the "leading '/' removed message from tar. +# for the same reason the DestFile is specified without the leading "/" + + +archivePriorInstallSystemFiles() { + + oldPWD=`pwd` + archiveFileList="" + + cd / + + + DestFile="opt/interbase" + if [ -e "$DestFile" ] + then + echo "" + echo "" + echo "" + echo "--- Warning ----------------------------------------------" + echo " The installation target directory: $IBRootDir" + echo " Already contains a prior installation of InterBase/Firebird." + echo " This and files found in /usr/include and /usr/lib will be" + echo " archived in the file : ${ArchiveMainFile}" + echo "" + + if [ ! -z "$InteractiveInstall" ] + then + AskQuestion "Press return to continue or ^C to abort" + fi + + if [ -e $DestFile ] + then + archiveFileList="$archiveFileList $DestFile" + fi + fi + + + for i in gds.h ibase.h iberror.h ib_util.h + do + DestFile=usr/include/$i + if [ -e $DestFile ] + then + archiveFileList="$archiveFileList $DestFile" + fi + done + + for i in gds_pyxis.a gds.a libgds.so.0 libgds.so ib_util.so + do + DestFile=usr/lib/$i + if [ -e $DestFile ] + then + archiveFileList="$archiveFileList $DestFile" + fi + done + + if [ ! -z "$archiveFileList" ] + then + + displayMessage "Archiving..." + + runAndCheckExit "tar -czf $ArchiveMainFile $archiveFileList" + + + displayMessage "Done." + displayMessage "Deleting..." + + for i in $archiveFileList + do + rm -rf $i + done + + displayMessage "Done." + + fi + cd $oldPWD + +} + + +#------------------------------------------------------------------------ +# Check for installed RPM package + +checkForRPMInstall() { + PackageName=$1 + + rpm -q $PackageName + STATUS=$? + if [ $STATUS -eq 0 ] + then + echo "Previous version of $PackageName is detected on your system." + echo "this will conflict with the current install of Firebird" + echo "Please unistall the previous version `rpm -q $PackageName` and then proceed." + exit $STATUS + fi + +} + + + +#= Main Pre ================================================================ + + IBRootDir=/opt/interbase + IBBin=$IBRootDir/bin + ArchiveDateTag=`date +"%Y%m%d_%H%M"` + ArchiveMainFile="${IBRootDir}_${ArchiveDateTag}.tar.gz" + + + +# Ok so any of the following packages are a problem +# these don't work at least in the latest rpm manager, since it +# has the rpm database locked and it fails. + +# checkForRPMInstall InterBase +# checkForRPMInstall FirebirdCS +# checkForRPMInstall FirebirdSS + + + checkIfServerRunning + +# Failing that we archive any files we find + + archivePriorInstallSystemFiles + + + +%post +#!/bin/sh + +# The post install script for Firebird Classic + + +#------------------------------------------------------------------------ +# Prompt for response, store result in Answer + +Answer="" + +AskQuestion() { + Test=$1 + DefaultAns=$2 + echo -n "${1}" + Answer="$DefaultAns" + read Answer +} + + +#------------------------------------------------------------------------ +# add a service line in the (usually) /etc/services or /etc/inetd.conf file +# Here there are three cases, not found => add service line, +# found & different => ask user to check +# found & same => do nothing +# + +replaceLineInFile() { + FileName=$1 + newLine=$2 + oldLine=$3 + + if [ -z "$oldLine" ] + then + echo "$newLine" >> $FileName + + elif [ "$oldLine" != "$newLine" ] + then + echo "" + echo "--- Warning ----------------------------------------------" + echo "" + echo " In file $FileName found line: " + echo " $oldLine" + echo " Which differs from the expected line:" + echo " $newLine" + echo "" + +# AskQuestion "Press return to update file or ^C to abort install" + + cat $FileName | grep -v "$oldLine" > ${FileName}.tmp + mv ${FileName}.tmp $FileName + echo "$newLine" >> $FileName + echo "Updated." + + fi +} + +#------------------------------------------------------------------------ +# Unable to generate the password for the rpm, so put out a message +# instead + + +keepOrigDBAPassword() { + + DBAPasswordFile=$IBRootDir/SYSDBA.password + + NewPasswd='masterkey' + echo "Firebird initial install password " > $DBAPasswordFile + echo "for user SYSDBA is : $NewPasswd" >> $DBAPasswordFile + + echo "for install on `hostname` at time `date`" >> $DBAPasswordFile + echo "You should change this password at the earliest oportunity" >> $DBAPasswordFile + echo "" + + echo "(For superserver you will also want to check the password in the" >> $DBAPasswordFile + echo "daemon init routine in the file /etc/rc.d/init.d/firebird)" >> $DBAPasswordFile + echo "" >> $DBAPasswordFile + echo "Your should password can be changed to a more suitable one using the" >> $DBAPasswordFile + echo "/opt/interbase/bin/gsec program as show below:" >> $DBAPasswordFile + echo "" >> $DBAPasswordFile + echo ">cd /opt/interbase" >> $DBAPasswordFile + echo ">bin/gsec -user sysdba -password " >> $DBAPasswordFile + echo "GSEC>modify sysdba -pw " >> $DBAPasswordFile + echo "GSEC>quit" >> $DBAPasswordFile + + chmod u=r,go= $DBAPasswordFile + + +} + + +#------------------------------------------------------------------------ +# Generate new sysdba password - this routine is used only in the +# rpm file not in the install acript. + + +generateNewDBAPassword() { + + DBAPasswordFile=$IBRootDir/SYSDBA.password + + NewPasswd=`/usr/bin/mkpasswd -l 8` + + echo "Firebird generated password " > $DBAPasswordFile + echo "for user SYSDBA is : $NewPasswd" >> $DBAPasswordFile + echo "generated on `hostname` at time `date`" >> $DBAPasswordFile + echo "(For superserver you will also want to check the password in the" >> $DBAPasswordFile + echo "daemon init routine in the file /etc/rc.d/init.d/firebird)" >> $DBAPasswordFile + echo "" >> $DBAPasswordFile + echo "Your password can be changed to a more suitable one using the" >> $DBAPasswordFile + echo "/opt/interbase/bin/gsec program as show below:" >> $DBAPasswordFile + echo "" >> $DBAPasswordFile + echo ">cd /opt/interbase" >> $DBAPasswordFile + echo ">bin/gsec -user sysdba -password " >> $DBAPasswordFile + echo "GSEC>modify sysdba -pw " >> $DBAPasswordFile + echo "GSEC>quit" >> $DBAPasswordFile + chmod u=r,go= $DBAPasswordFile + + $IBBin/gsec -user sysdba -password masterkey < $DBAPasswordFile +# chmod ga-rwx $DBAPasswordFile + + AskQuestion "Please enter new password for SYSDBA user: " + NewPasswd=$Answer + if [ ! -z "$NewPasswd" ] + then + $IBBin/gsec -user sysdba -password masterkey < ${FileName}.tmp + mv ${FileName}.tmp $FileName + echo "Updated." + + fi +} + + +#= Main PostUn ============================================================ + + if [ -L /usr/lib/libgds.so ] + then + rm /usr/lib/libgds.so + fi + + if [ "$1"=0 ] + then + + # Lose the gds_db line from /etc/services + + FileName=/etc/services + oldLine=`grep "^gds_db" $FileName` + removeLineFromFile "$FileName" "$oldLine" + + # Next, lose the gds_db line from /etc/inetd.conf + + FileName=/etc/inetd.conf + oldLine=`grep "^gds_db" $FileName` + removeLineFromFile "$FileName" "$oldLine" + + # Get inetd to reread new inetd.conf file + + if [ -f /var/run/inetd.pid ] + then + kill -HUP `cat /var/run/inetd.pid` + fi + fi diff --git a/src/install/arch-specific/linux/Makefile.in b/src/install/arch-specific/linux/Makefile.in new file mode 100644 index 0000000000..f370e5c691 --- /dev/null +++ b/src/install/arch-specific/linux/Makefile.in @@ -0,0 +1,3 @@ + + +# Hello 1 diff --git a/src/install/arch-specific/linux/SSrpmscript b/src/install/arch-specific/linux/SSrpmscript new file mode 100644 index 0000000000..87dfc3d4f4 --- /dev/null +++ b/src/install/arch-specific/linux/SSrpmscript @@ -0,0 +1,672 @@ +Summary: Firebird Database Server and Client tools. +Name: FirebirdSS +Version: 0.9 +Release: 1 +Copyright: Distributable +Group: Applications/Databases +Source: FirebirdSS0.9src.tar.gz +URL: http://firebird.sourceforge.net +Prefix: /opt +AutoReqProv: no + +%description +Firebird is a powerful, high-performance relational database designed to be embedded into +applications on multiple platforms. + + +%prep + +%build + +%install + +%files + %dir /opt/interbase + %dir /opt/interbase/bin + %dir /opt/interbase/lib + %dir /opt/interbase/UDF + %dir /opt/interbase/intl + %dir /opt/interbase/help + /opt/interbase/bin/gbak + /opt/interbase/bin/gdef + /opt/interbase/bin/gds_lock_print + /opt/interbase/bin/gfix + /opt/interbase/bin/gpre + /opt/interbase/bin/gsec + /opt/interbase/bin/gsplit + /opt/interbase/bin/gstat + /opt/interbase/bin/isc4.gbak + /opt/interbase/bin/isql + /opt/interbase/bin/qli + /opt/interbase/bin/ibmgr.bin + /opt/interbase/bin/ibserver + /opt/interbase/bin/ibguard + /opt/interbase/examples + /opt/interbase/help/help.gbak + /opt/interbase/help/help.gdb + /opt/interbase/include + /usr/include/gds.h + /usr/include/iberror.h + /usr/include/ibase.h + /opt/interbase/doc + /opt/interbase/interbase.msg + /opt/interbase/isc4.gdb + /opt/interbase/isc_config + /usr/lib/libgds.so.0 + /usr/lib/libgds.so + /usr/lib/libib_util.so + /usr/lib/libgds_pyxis.a + /opt/interbase/intl/gdsintl + /opt/interbase/UDF/ib_udf + /opt/interbase/services.isc + /opt/interbase/README + + /etc/rc.d/init.d/firebird + + +%pre +#! /bin/sh + + +#------------------------------------------------------------------------ +# Prompt for response, store result in Answer + +Answer="" + +AskQuestion() { + Test=$1 + DefaultAns=$2 + echo -n "${1}" + Answer="$DefaultAns" + read Answer +} + +#------------------------------------------------------------------------ +# stop super server if it is running +# Also will only stop firebird, since that has the init script + + +stopServerIfRunning() { + + checkString=`ps -efww| egrep "(ibserver|ibguard)" |grep -v grep` + + if [ ! -z "$checkString" ] + then + if [ -f /etc/rc.d/init.d/firebird ] + then + /etc/rc.d/init.d/firebird stop + fi + fi +} + +#------------------------------------------------------------------------ +# Check if server is running + + +checkIfServerRunning() { + + + stopServerIfRunning + + checkString=`ps -efww| egrep "(ibserver|ibguard)" |grep -v grep` + + if [ ! -z "$checkString" ] + then + echo "An instance of the Firebird/InterBase Super server seems to be running." + echo "Please quit all interbase applications and then proceed" + exit 1 + fi + + + + checkString=`ps -efww| egrep "(gds_inet_server|gds_pipe)" |grep -v grep` + + if [ ! -z "$checkString" ] + then + echo "An instance of the Firebird/InterBase server seems to be running." + echo "Please quit all interbase applications and then proceed." + exit 1 + fi + + + +# Stop lock manager if it is the only thing running. + + for i in `ps -efww | grep "gds_lock_mgr" | grep -v "grep" | awk '{print $2}' ` + do + kill $i + done + + +} + + +#------------------------------------------------------------------------ +# Run process and check status + + +runAndCheckExit() { + Cmd=$* + +# echo $Cmd + $Cmd + + ExitCode=$? + + if [ $ExitCode -ne 0 ] + then + echo "Install aborted: The command $Cmd " + echo " failed with error code $ExitCode" + exit $ExitCode + fi +} + + +#------------------------------------------------------------------------ +# Display message if this is being run interactively. + + +displayMessage() { + + msgText=$1 + if [ ! -z "$InteractiveInstall" ] + then + echo $msgText + fi +} + + +#------------------------------------------------------------------------ +# Archive any existing prior installed files. +# The 'cd' stuff is to avoid the "leading '/' removed message from tar. +# for the same reason the DestFile is specified without the leading "/" + + +archivePriorInstallSystemFiles() { + + oldPWD=`pwd` + archiveFileList="" + + cd / + + + DestFile="opt/interbase" + if [ -e "$DestFile" ] + then + echo "" + echo "" + echo "" + echo "--- Warning ----------------------------------------------" + echo " The installation target directory: $IBRootDir" + echo " Already contains a prior installation of InterBase/Firebird." + echo " This and files found in /usr/include and /usr/lib will be" + echo " archived in the file : ${ArchiveMainFile}" + echo "" + + if [ ! -z "$InteractiveInstall" ] + then + AskQuestion "Press return to continue or ^C to abort" + fi + + if [ -e $DestFile ] + then + archiveFileList="$archiveFileList $DestFile" + fi + fi + + + for i in gds.h ibase.h iberror.h ib_util.h + do + DestFile=usr/include/$i + if [ -e $DestFile ] + then + archiveFileList="$archiveFileList $DestFile" + fi + done + + for i in gds_pyxis.a gds.a libgds.so.0 libgds.so ib_util.so + do + DestFile=usr/lib/$i + if [ -e $DestFile ] + then + archiveFileList="$archiveFileList $DestFile" + fi + done + + if [ ! -z "$archiveFileList" ] + then + + displayMessage "Archiving..." + + runAndCheckExit "tar -czf $ArchiveMainFile $archiveFileList" + + + displayMessage "Done." + displayMessage "Deleting..." + + for i in $archiveFileList + do + rm -rf $i + done + + displayMessage "Done." + + fi + cd $oldPWD + +} + + +#------------------------------------------------------------------------ +# Check for installed RPM package + +checkForRPMInstall() { + PackageName=$1 + + rpm -q $PackageName + STATUS=$? + if [ $STATUS -eq 0 ] + then + echo "Previous version of $PackageName is detected on your system." + echo "this will conflict with the current install of Firebird" + echo "Please unistall the previous version `rpm -q $PackageName` and then proceed." + exit $STATUS + fi + +} + + + +#== Main Pre ================================================================= + + IBRootDir=/opt/interbase + IBBin=$IBRootDir/bin + ArchiveDateTag=`date +"%Y%m%d_%H%M"` + ArchiveMainFile="${IBRootDir}_${ArchiveDateTag}.tar.gz" + + + +# Ok so any of the following packages are a problem +# these don't work at least in the latest rpm manager, since it +# has the rpm database locked and it fails. + +# checkForRPMInstall InterBase +# checkForRPMInstall FirebirdCS +# checkForRPMInstall FirebirdSS + + + checkIfServerRunning + + +# Failing that we archive any files we find + + archivePriorInstallSystemFiles + + +%post +#! /bin/sh + + +#------------------------------------------------------------------------ +# Prompt for response, store result in Answer + +Answer="" + +AskQuestion() { + Test=$1 + DefaultAns=$2 + echo -n "${1}" + Answer="$DefaultAns" + read Answer +} + +#------------------------------------------------------------------------ +# add a service line in the (usually) /etc/services or /etc/inetd.conf file +# Here there are three cases, not found => add service line, +# found & different => ask user to check +# found & same => do nothing +# + +replaceLineInFile() { + FileName=$1 + newLine=$2 + oldLine=$3 + + if [ -z "$oldLine" ] + then + echo "$newLine" >> $FileName + + elif [ "$oldLine" != "$newLine" ] + then + echo "" + echo "--- Warning ----------------------------------------------" + echo "" + echo " In file $FileName found line: " + echo " $oldLine" + echo " Which differs from the expected line:" + echo " $newLine" + echo "" + +# AskQuestion "Press return to update file or ^C to abort install" + + cat $FileName | grep -v "$oldLine" > ${FileName}.tmp + mv ${FileName}.tmp $FileName + echo "$newLine" >> $FileName + echo "Updated." + + fi +} + +#------------------------------------------------------------------------ +# remove line from config file if it exists in it. + +removeLineFromFile() { + FileName=$1 + oldLine=$2 + + if [ ! -z "$oldLine" ] + then + cat $FileName | grep -v "$oldLine" > ${FileName}.tmp + mv ${FileName}.tmp $FileName + echo "Updated." + + fi +} + + + +#------------------------------------------------------------------------ +# changeInitPassword + + +changeInitPassword() { + + NewPasswd=$1 + + InitFile=/etc/rc.d/init.d/firebird + if [ -f $InitFile ] + then + ed $InitFile < $DBAPasswordFile + echo "for user SYSDBA is : $NewPasswd" >> $DBAPasswordFile + echo "generated on `hostname` at time `date`" >> $DBAPasswordFile + echo "" >> $DBAPasswordFile + echo "(For superserver you will also want to check the password in the" >> $DBAPasswordFile + echo "daemon init routine in the file /etc/rc.d/init.d/firebird)" >> $DBAPasswordFile + echo "" >> $DBAPasswordFile + echo "Your password can be changed to a more suitable one using the" >> $DBAPasswordFile + echo "/opt/interbase/bin/gsec program as show below:" >> $DBAPasswordFile + echo "" >> $DBAPasswordFile + echo ">cd /opt/interbase" >> $DBAPasswordFile + echo ">bin/gsec -user sysdba -password " >> $DBAPasswordFile + echo "GSEC>modify sysdba -pw " >> $DBAPasswordFile + echo "GSEC>quit" >> $DBAPasswordFile + + chmod u=rw,go= $DBAPasswordFile + + $IBBin/gsec -user sysdba -password masterkey < ibmgr < ${FileName}.tmp + mv ${FileName}.tmp $FileName + echo "Updated." + + fi +} + + + +#= Main ProstUn =============================================================== + + + if [ -L /usr/lib/libgds.so ] + then + rm -f /usr/lib/libgds.so + fi + + # Update /etc/services + + + FileName=/etc/services + oldLine=`grep "^gds_db" $FileName` + + removeLineFromFile "$FileName" "$oldLine" + diff --git a/src/install/classic/CSTarInstall.sh b/src/install/classic/CSTarInstall.sh new file mode 100755 index 0000000000..bfdd732cc9 --- /dev/null +++ b/src/install/classic/CSTarInstall.sh @@ -0,0 +1,125 @@ + + +#------------------------------------------------------------------------ +# Prompt for response, store result in Answer + +Answer="" + +AskQuestion() { + Test=$1 + DefaultAns=$2 + echo -n "${1}" + Answer="$DefaultAns" + read Answer +} + +#------------------------------------------------------------------------ +# Prompt for yes or no answer - returns non-zero for no + +AskYNQuestion() { + while echo -n "${*} (y/n): " + do + read answer rest + case $answer in + [yY]*) + return 0 + ;; + [nN]*) + return 1 + ;; + *) + echo "Please answer y or n" + ;; + esac + done +} + + +#------------------------------------------------------------------------ +# Run process and check status + + +runAndCheckExit() { + Cmd=$* + +# echo $Cmd + $Cmd + + ExitCode=$? + + if [ $ExitCode -ne 0 ] + then + echo "Install aborted: The command $Cmd " + echo " failed with error code $ExitCode" + exit + fi +} + +#------------------------------------------------------------------------ +# Check for a previous install + + +checkInstallUser() { + + if [ "`whoami`" != "root" ]; + then + echo "" + echo "--- Warning ----------------------------------------------" + echo "" + echo " You need to be 'root' user to install" + echo "" + exit + fi +} + + + +#== Main Program ========================================================== + + +InteractiveInstall=1 +export InteractiveInstall + + +checkInstallUser + +# Ok, here we are installing from a CVS tree + +if [ -e firebird ] + then + ScriptsSrcDir=./src/install/linux + + ( $ScriptsSrcDir/classic/CSpreinstall.sh ) + + cp $ScriptsSrcDir/misc/README interbase + + for i in CSchangeRunUser.sh CSrestoreRootRunUser.sh changeDBAPassword.sh + do + cp $ScriptsSrcDir/misc/$i interbase/bin/$i + chmod ugo=rx interbase/bin/$i + done + + mkdir -p interbase/misc + cp $ScriptsSrcDir/misc/firebird.xinetd interbase/misc + + ($ScriptsSrcDir/classic/CSinstall.sh) + + ($ScriptsSrcDir/classic/CSpostinstall.sh) +fi + +# Here we are installing from a install tar.gz file + +if [ -e scripts ] + then + echo "Extracting install data" + runAndCheckExit "tar -xzf interbase.tar.gz" + + (./scripts/CSpreinstall.sh) + (./scripts/CSinstall.sh) + (./scripts/CSpostinstall.sh) + + rm -rf interbase +fi + +echo "Install completed" + diff --git a/src/install/classic/CSTarKullFiles.sh b/src/install/classic/CSTarKullFiles.sh new file mode 100755 index 0000000000..63f8a3a905 --- /dev/null +++ b/src/install/classic/CSTarKullFiles.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +IBRootDir=`pwd`/interbase +IBBin=$IBRootDir/bin +RunUser=root + + +chown -R $RunUser.$RunUser $IBRootDir + +cd $IBBin + +for i in gds_lock_mgr gds_drop gds_inet_server + do + chmod ug+s $i + done + + + +cd $IBRootDir + +rm -f isc_init1* +rm -f isc_lock1* + +chmod ugo=rw isc4.gdb + +rm -f inetd.conf.isc install + diff --git a/src/install/classic/CSinstall.sh b/src/install/classic/CSinstall.sh new file mode 100755 index 0000000000..a915abb714 --- /dev/null +++ b/src/install/classic/CSinstall.sh @@ -0,0 +1,104 @@ +#!/bin/sh + +# Script to install files from the build/transport area + +# cd InterBase + + +# A little bit of tidying up of some odd files not in the original build +# These files will exist in the CVS tree. +# If this is a tar.gz install rather than the result of a build then +# We assume the files have already been copied here manually. + + BuildDir=gen/firebird + DestDir=/opt/interbase + + if [ -z "$InteractiveInstall" ] + then + ScriptsSrcDir=src/install/linux + cp $ScriptsSrcDir/misc/README $BuildDir + fi + +# The guts of the tranfer of files to /opt and other directories + + if [ -d $DestDir ] + then + rm -rf $DestDir + fi + mkdir $DestDir + mkdir $DestDir/bin + mkdir $DestDir/examples + mkdir $DestDir/help + mkdir $DestDir/include + mkdir $DestDir/intl + mkdir $DestDir/lib + mkdir $DestDir/doc + mkdir $DestDir/UDF + mkdir $DestDir/misc + + cp -f $BuildDir/bin/gds_inet_server $DestDir/bin/gds_inet_server + + cp $BuildDir/bin/gbak $DestDir/bin/gbak + cp $BuildDir/bin/gdef $DestDir/bin/gdef + cp $BuildDir/bin/gds_lock_print $DestDir/bin/gds_lock_print + cp $BuildDir/bin/gds_drop $DestDir/bin/gds_drop + cp $BuildDir/bin/gds_lock_mgr $DestDir/bin/gds_lock_mgr + cp $BuildDir/bin/gds_pipe $DestDir/bin/gds_pipe + cp $BuildDir/bin/gfix $DestDir/bin/gfix + cp $BuildDir/bin/gpre $DestDir/bin/gpre + cp $BuildDir/bin/gsec $DestDir/bin/gsec + cp $BuildDir/bin/gsplit $DestDir/bin/gsplit + cp $BuildDir/bin/gstat $DestDir/bin/gstat + cp $BuildDir/bin/isc4.gbak $DestDir/bin/isc4.gbak + cp $BuildDir/bin/isql $DestDir/bin/isql + cp $BuildDir/bin/qli $DestDir/bin/qli + + cp $BuildDir/bin/CSchangeRunUser.sh $DestDir/bin + cp $BuildDir/bin/CSrestoreRootRunUser.sh $DestDir/bin + cp $BuildDir/bin/changeDBAPassword.sh $DestDir/bin + + cp $BuildDir/examples/v5/*.[ceh] $DestDir/examples + cp $BuildDir/examples/v5/*.sql $DestDir/examples + cp $BuildDir/examples/v5/*.gbk $DestDir/examples + cp $BuildDir/examples/v5/*.gdb $DestDir/examples + cp $BuildDir/examples/v5/makefile $DestDir/examples + cp $BuildDir/help/help.gbak $DestDir/help + cp $BuildDir/help/help.gdb $DestDir/help + #cp -r $BuildDir/doc $DestDir + cp $BuildDir/interbase.msg $DestDir/interbase.msg + cp $BuildDir/isc4.gdb $DestDir/isc4.gdb + cp $BuildDir/isc_config $DestDir/isc_config + + cp -f $BuildDir/include/gds.h /usr/include/gds.h + cp -f $BuildDir/include/iberror.h /usr/include/iberror.h + cp -f $BuildDir/include/ibase.h /usr/include/ibase.h + cp -f $BuildDir/include/ib_util.h /usr/include/ib_util.h + + cp $BuildDir/include/gds.f $DestDir/include + cp $BuildDir/include/gds.hxx $DestDir/include + cp $BuildDir/include/*.h $DestDir/include + + cp -f $BuildDir/lib/gds.so /usr/lib/libgds.so.0 + if [ -L /usr/lib/libgds.so ] + then + rm -f /usr/lib/libgds.so + fi + ln -s libgds.so.0 /usr/lib/libgds.so + + cp -f $BuildDir/lib/gds.a /usr/lib/libgds.a + cp -f $BuildDir/lib/ib_util.so /usr/lib/libib_util.so + + + cp $BuildDir/intl/libgdsintl.so $DestDir/intl/ + cp $BuildDir/UDF/ib_udf $DestDir/UDF/ib_udf + + cp $BuildDir/services.isc $DestDir/services.isc + cp $BuildDir/README $DestDir/README + + cp $BuildDir/misc/firebird.xinetd $DestDir/misc/firebird.xinetd + + # June 23 2000, 6:00AM + #TIMESTAMP="200006230600.00" + #cd $DestDir/ + #touch -t $TIMESTAMP `find . -print` + diff --git a/src/install/classic/CSpostinstall.sh b/src/install/classic/CSpostinstall.sh new file mode 100755 index 0000000000..2f56e2694e --- /dev/null +++ b/src/install/classic/CSpostinstall.sh @@ -0,0 +1,553 @@ +#!/bin/sh + +# The post install script for Firebird Classic + + +#------------------------------------------------------------------------ +# Prompt for response, store result in Answer + +Answer="" + +AskQuestion() { + Test=$1 + DefaultAns=$2 + echo -n "${1}" + Answer="$DefaultAns" + read Answer +} + + +#------------------------------------------------------------------------ +# add a service line in the (usually) /etc/services or /etc/inetd.conf file +# Here there are three cases, not found => add service line, +# found & different => ask user to check +# found & same => do nothing +# + +replaceLineInFile() { + FileName=$1 + newLine=$2 + oldLine=$3 + + if [ -z "$oldLine" ] + then + echo "$newLine" >> $FileName + + elif [ "$oldLine" != "$newLine" ] + then + echo "" + echo "--- Warning ----------------------------------------------" + echo "" + echo " In file $FileName found line: " + echo " $oldLine" + echo " Which differs from the expected line:" + echo " $newLine" + echo "" + +# AskQuestion "Press return to update file or ^C to abort install" + + cat $FileName | grep -v "$oldLine" > ${FileName}.tmp + mv ${FileName}.tmp $FileName + echo "$newLine" >> $FileName + echo "Updated." + + fi +} + +#------------------------------------------------------------------------ +# Add new user and group + + +addFirebirdUser() { + + testStr=`grep firebird /etc/group` + + if [ -z "$testStr" ] + then + groupadd -g 84 -o -r firebird + fi + + testStr=`grep firebird /etc/passwd` + if [ -z "$testDir" ] + then + useradd -o -r -m -d $IBRootDir -s /bin/bash \ + -c "Firebird Database Administrator" -g firebird -u 84 firebird + + # >/dev/null 2>&1 + fi +} + + +#------------------------------------------------------------------------ +# Delete new user and group + + +deleteFirebirdUser() { + + userdel firebird + # groupdel firebird + +} + + +#------------------------------------------------------------------------ +# changeXinetdServiceUser +# Change the run user of the xinetd service + +changeXinetdServiceUser() { + + InitFile=/etc/xinetd.d/firebird + if [ -f $InitFile ] + then + ed -s $InitFile < $DBAPasswordFile + echo "for user SYSDBA is : $NewPasswd" >> $DBAPasswordFile + + echo "for install on `hostname` at time `date`" >> $DBAPasswordFile + echo "You should change this password at the earliest oportunity" >> $DBAPasswordFile + echo "" + + echo "(For superserver you will also want to check the password in the" >> $DBAPasswordFile + echo "daemon init routine in the file /etc/init.d/firebird)" >> $DBAPasswordFile + echo "" >> $DBAPasswordFile + echo "Your should password can be changed to a more suitable one using the" >> $DBAPasswordFile + echo "/opt/interbase/bin/changeDBAPassword.sh script" >> $DBAPasswordFile + echo "" >> $DBAPasswordFile + + chmod u=r,go= $DBAPasswordFile + + +} + + +#------------------------------------------------------------------------ +# Generate new sysdba password - this routine is used only in the +# rpm file not in the install acript. + + +generateNewDBAPassword() { + + DBAPasswordFile=$IBRootDir/SYSDBA.password + + NewPasswd=`/usr/bin/mkpasswd -l 8` + + echo "Firebird generated password " > $DBAPasswordFile + echo "for user SYSDBA is : $NewPasswd" >> $DBAPasswordFile + echo "generated on `hostname` at time `date`" >> $DBAPasswordFile + echo "(For superserver you will also want to check the password in the" >> $DBAPasswordFile + echo "daemon init routine in the file /etc/rc.d/init.d/firebird)" >> $DBAPasswordFile + echo "" >> $DBAPasswordFile + echo "Your password can be changed to a more suitable one using the" >> $DBAPasswordFile + echo "/opt/interbase/bin/changeDBAPassword.sh script" >> $DBAPasswordFile + echo "" >> $DBAPasswordFile + chmod u=r,go= $DBAPasswordFile + + $IBBin/gsec -user sysdba -password masterkey < $DBAPasswordFile +# chmod ga-rwx $DBAPasswordFile + + AskQuestion "Please enter new password for SYSDBA user: " + NewPasswd=$Answer + if [ ! -z "$NewPasswd" ] + then + $IBBin/gsec -user sysdba -password masterkey < ${FileName}.tmp + mv ${FileName}.tmp $FileName + echo "Updated." + + fi +} + + +#= Main PostUn ============================================================ + + if [ -L /usr/lib/libgds.so ] + then + rm /usr/lib/libgds.so + fi + + if [ "$1"=0 ] + then + + # Lose the gds_db line from /etc/services + + FileName=/etc/services + oldLine=`grep "^gds_db" $FileName` + removeLineFromFile "$FileName" "$oldLine" + + # Next, lose the gds_db line from /etc/inetd.conf + + FileName=/etc/inetd.conf + oldLine=`grep "^gds_db" $FileName` + removeLineFromFile "$FileName" "$oldLine" + + # Get inetd to reread new inetd.conf file + + if [ -f /var/run/inetd.pid ] + then + kill -HUP `cat /var/run/inetd.pid` + fi + fi diff --git a/src/install/classic/CSpreinstall.sh b/src/install/classic/CSpreinstall.sh new file mode 100755 index 0000000000..f7f8ce228f --- /dev/null +++ b/src/install/classic/CSpreinstall.sh @@ -0,0 +1,240 @@ +#!/bin/sh + + +# The pre install routine for Firebird Classic + + +#------------------------------------------------------------------------ +# Prompt for response, store result in Answer + +Answer="" + +AskQuestion() { + Test=$1 + DefaultAns=$2 + echo -n "${1}" + Answer="$DefaultAns" + read Answer +} + + +#------------------------------------------------------------------------ +# stop super server if it is running +# Also will only stop firebird, since that has the init script + + +stopServerIfRunning() { + + checkString=`ps -efww| egrep "(ibserver|ibguard)" |grep -v grep` + + if [ ! -z "$checkString" ] + then + if [ -f /etc/rc.d/init.d/firebird ] + then + /etc/rc.d/init.d/firebird stop + fi + fi +} + +#------------------------------------------------------------------------ +# stop server if it is running + + +checkIfServerRunning() { + + + stopServerIfRunning + +# Check is server is being actively used. + + checkString=`ps -efww| egrep "(ibserver|ibguard)" |grep -v grep` + + if [ ! -z "$checkString" ] + then + echo "An instance of the Firebird/InterBase Super server seems to be running." + echo "Please quit all interbase applications and then proceed" + exit 1 + fi + + checkString=`ps -efww| egrep "(gds_inet_server|gds_pipe)" |grep -v grep` + + if [ ! -z "$checkString" ] + then + echo "An instance of the Firebird/InterBase server seems to be running." + echo "Please quit all interbase applications and then proceed." + exit 1 + fi + + + +# Stop lock manager if it is the only thing running. + + for i in `ps -efww | grep "gds_lock_mgr" | grep -v "grep" | awk '{print $2}' ` + do + kill $i + done + + +} + +#------------------------------------------------------------------------ +# Run process and check status + + +runAndCheckExit() { + Cmd=$* + +# echo $Cmd + $Cmd + + ExitCode=$? + + if [ $ExitCode -ne 0 ] + then + echo "Install aborted: The command $Cmd " + echo " failed with error code $ExitCode" + exit $ExitCode + fi +} + + +#------------------------------------------------------------------------ +# Display message if this is being run interactively. + + +displayMessage() { + + msgText=$1 + if [ ! -z "$InteractiveInstall" ] + then + echo $msgText + fi +} + + +#------------------------------------------------------------------------ +# Archive any existing prior installed files. +# The 'cd' stuff is to avoid the "leading '/' removed message from tar. +# for the same reason the DestFile is specified without the leading "/" + + +archivePriorInstallSystemFiles() { + + oldPWD=`pwd` + archiveFileList="" + + cd / + + + DestFile="opt/interbase" + if [ -e "$DestFile" ] + then + echo "" + echo "" + echo "" + echo "--- Warning ----------------------------------------------" + echo " The installation target directory: $IBRootDir" + echo " Already contains a prior installation of InterBase/Firebird." + echo " This and files found in /usr/include and /usr/lib will be" + echo " archived in the file : ${ArchiveMainFile}" + echo "" + + if [ ! -z "$InteractiveInstall" ] + then + AskQuestion "Press return to continue or ^C to abort" + fi + + if [ -e $DestFile ] + then + archiveFileList="$archiveFileList $DestFile" + fi + fi + + + for i in gds.h ibase.h iberror.h ib_util.h + do + DestFile=usr/include/$i + if [ -e $DestFile ] + then + archiveFileList="$archiveFileList $DestFile" + fi + done + + for i in gds_pyxis.a gds.a libgds.so.0 libgds.so ib_util.so + do + DestFile=usr/lib/$i + if [ -e $DestFile ] + then + archiveFileList="$archiveFileList $DestFile" + fi + done + + if [ ! -z "$archiveFileList" ] + then + + displayMessage "Archiving..." + + runAndCheckExit "tar -czf $ArchiveMainFile $archiveFileList" + + + displayMessage "Done." + displayMessage "Deleting..." + + for i in $archiveFileList + do + rm -rf $i + done + + displayMessage "Done." + + fi + cd $oldPWD + +} + + +#------------------------------------------------------------------------ +# Check for installed RPM package + +checkForRPMInstall() { + PackageName=$1 + + rpm -q $PackageName + STATUS=$? + if [ $STATUS -eq 0 ] + then + echo "Previous version of $PackageName is detected on your system." + echo "this will conflict with the current install of Firebird" + echo "Please unistall the previous version `rpm -q $PackageName` and then proceed." + exit $STATUS + fi + +} + + + +#= Main Pre ================================================================ + + IBRootDir=/opt/interbase + IBBin=$IBRootDir/bin + ArchiveDateTag=`date +"%Y%m%d_%H%M"` + ArchiveMainFile="${IBRootDir}_${ArchiveDateTag}.tar.gz" + + + +# Ok so any of the following packages are a problem +# these don't work at least in the latest rpm manager, since it +# has the rpm database locked and it fails. + +# checkForRPMInstall InterBase +# checkForRPMInstall FirebirdCS +# checkForRPMInstall FirebirdSS + + + checkIfServerRunning + +# Failing that we archive any files we find + + archivePriorInstallSystemFiles + + diff --git a/src/install/classic/CSpreuninstall.sh b/src/install/classic/CSpreuninstall.sh new file mode 100755 index 0000000000..69e7891de2 --- /dev/null +++ b/src/install/classic/CSpreuninstall.sh @@ -0,0 +1,57 @@ +#! /bin/sh + +# The pre uninstall routines for Firebird Classic + +#------------------------------------------------------------------------ +# stop server if it is running + + +checkIfServerRunning() { + +# Check is server is being actively used. + + checkString=`ps -ef| egrep "(gds_inet_server|gds_pipe)" |grep -v grep` + + if [ ! -z "$checkString" ] + then + echo "An instance of the Firebird/InterBase server seems to be running." + echo "Please quit all interbase applications and then proceed." + exit 1 + fi + + + +# Stop lock manager if it is the only thing running. + + for i in `ps -ef | grep "gds_lock_mgr" | grep -v "grep" | cut -d' ' -f3` + do + kill $i + done + +} + + +#= Main PreUn ================================================================ +# This is a bit simple, but should work for now. +# cron will remove files in /tmp after a while. + + IBRootDir=/opt/interbase + IBBin=$IBRootDir/bin + + checkIfServerRunning + + cd $IBRootDir + + if [ -f isc4.gdb ] + then + cp isc4.gdb /tmp + echo "Saved a copy of isc4.gdb in /tmp" + fi + + for i in isc_init1* isc_event1* isc_lock1* interbase.log SYSDBA.password + do + if [ -f $i ] + then + rm -f $i + fi + done diff --git a/src/install/classic/CSrpmfiles.txt b/src/install/classic/CSrpmfiles.txt new file mode 100644 index 0000000000..f35af90f45 --- /dev/null +++ b/src/install/classic/CSrpmfiles.txt @@ -0,0 +1,60 @@ +%dir /opt/interbase +%dir /opt/interbase/bin +%dir /opt/interbase/lib +%dir /opt/interbase/UDF +%dir /opt/interbase/intl +%dir /opt/interbase/help +%dir /opt/interbase/misc + +/opt/interbase/bin/gds_inet_server +/opt/interbase/bin/gbak +/opt/interbase/bin/gdef +/opt/interbase/bin/gds_lock_print +/opt/interbase/bin/gds_lock_mgr +/opt/interbase/bin/gds_pipe +/opt/interbase/bin/gds_drop +/opt/interbase/bin/gfix +/opt/interbase/bin/gpre +/opt/interbase/bin/gsec +/opt/interbase/bin/gsplit +/opt/interbase/bin/gstat +/opt/interbase/bin/isc4.gbak +/opt/interbase/bin/isql +/opt/interbase/bin/qli +/opt/interbase/bin/CSchangeRunUser.sh +/opt/interbase/bin/CSrestoreRootRunUser.sh +/opt/interbase/bin/changeDBAPassword.sh + +/opt/interbase/examples + +/opt/interbase/help/help.gbak +%attr(666, -, -) /opt/interbase/help/help.gdb + +/opt/interbase/include + +/usr/include/gds.h +/usr/include/iberror.h +/usr/include/ibase.h +/usr/include/ib_util.h + +#/opt/interbase/doc + +/opt/interbase/README +/opt/interbase/interbase.msg +%attr(666, -, -) /opt/interbase/isc4.gdb +/opt/interbase/isc_config + +/usr/lib/libgds.so.0 +/usr/lib/libgds.so +/usr/lib/libib_util.so +/usr/lib/libgds_pyxis.a +/usr/lib/libgds.a +/opt/interbase/intl/gdsintl +/opt/interbase/UDF/ib_udf +/opt/interbase/services.isc + +/opt/interbase/misc/firebird.xinetd + + + + diff --git a/src/install/classic/CSrpmheader.txt b/src/install/classic/CSrpmheader.txt new file mode 100644 index 0000000000..eacad02607 --- /dev/null +++ b/src/install/classic/CSrpmheader.txt @@ -0,0 +1,16 @@ +Summary: Firebird Relational Database Server and Client tools. +Name: FirebirdCS +Version: 0.9 +Release: 4 +Copyright: Distributable +Group: Applications/Databases +Source: FirebirdCS0.9src.tar.gz +URL: http://firebird.sourceforge.net +Prefix: /opt +AutoReqProv: no +# BuildRoot: /var/tmp/%{name}-buildroot + +%description +Firebird is a powerful, high-performance relational database designed to be embedded into +applications on multiple platforms. + diff --git a/src/install/misc/CSchangeRunUser.sh b/src/install/misc/CSchangeRunUser.sh new file mode 100755 index 0000000000..660dcaf822 --- /dev/null +++ b/src/install/misc/CSchangeRunUser.sh @@ -0,0 +1,372 @@ +#!/bin/sh + +# A routine to change the user that runs interbase Firebird + + +#------------------------------------------------------------------------ +# Prompt for response, store result in Answer + +Answer="" + +AskQuestion() { + Test=$1 + DefaultAns=$2 + echo -n "${1}" + Answer="$DefaultAns" + read Answer +} + + + +#------------------------------------------------------------------------ +# Check for a previous install + + +checkInstallUser() { + + if [ "`whoami`" != "root" ]; + then + ehco "" + echo "--- Warning ----------------------------------------------" + echo "" + echo " You need to be 'root' user to do this change" + echo "" + exit + fi +} + + +#------------------------------------------------------------------------ +# check if it is running + + +checkIfServerRunning() { + +# Check is server is being actively used. + + checkString=`ps -efww| egrep "(ibserver|ibguard)" |grep -v grep` + + if [ ! -z "$checkString" ] + then + echo "An instance of the Firebird/InterBase Super server seems to be running." + echo "Please quit all interbase applications and then proceed" + exit 1 + fi + + checkString=`ps -efww| egrep "(gds_inet_server|gds_pipe)" |grep -v grep` + + if [ ! -z "$checkString" ] + then + echo "An instance of the Firebird/InterBase server seems to be running." + echo "Please quit all interbase applications and then proceed." + exit 1 + fi + + + +# Stop lock manager if it is the only thing running. + + for i in `ps -efww | grep "gds_lock_mgr" | grep -v "grep" | awk '{print $2}' ` + do + kill $i + done + +} + +#------------------------------------------------------------------------ +# Add new user and group + + +addFirebirdUser() { + + testStr=`grep firebird /etc/group` + + if [ -z "$testStr" ] + then + groupadd -g 84 -o -r firebird + fi + + testStr=`grep firebird /etc/passwd` + if [ -z "$testDir" ] + then + useradd -o -r -m -d $IBRootDir -s /bin/bash \ + -c "Firebird Database Administrator" -g firebird -u 84 firebird + + # >/dev/null 2>&1 + fi +} + + + + +#------------------------------------------------------------------------ +# Delete new user and group + + +deleteFirebirdUser() { + + userdel firebird + # groupdel firebird + +} + + + +#------------------------------------------------------------------------ +# add a service line in the (usually) /etc/services or /etc/inetd.conf file +# Here there are three cases, not found => add service line, +# found & different => ask user to check +# found & same => do nothing +# + +replaceLineInFile() { + FileName=$1 + newLine=$2 + oldLine=$3 + + if [ -z "$oldLine" ] + then + echo "$newLine" >> $FileName + + elif [ "$oldLine" != "$newLine" ] + then +# We really expect this to be the case. + + cat $FileName | grep -v "$oldLine" > ${FileName}.tmp + mv ${FileName}.tmp $FileName + echo "$newLine" >> $FileName + echo "Updated." + + fi +} + + +#------------------------------------------------------------------------ +# changeXinetdServiceUser +# Change the run user of the xinetd service + +changeXinetdServiceUser() { + + InitFile=/etc/xinetd.d/firebird + if [ -f $InitFile ] + then + ed -s $InitFile </dev/null 2>&1 +} + + +#------------------------------------------------------------------------ +# Delete new user and group + + +deleteFirebirdUser() { + + userdel firebird + # groupdel firebird + +} + + + +#------------------------------------------------------------------------ +# add a service line in the (usually) /etc/services or /etc/inetd.conf file +# Here there are three cases, not found => add service line, +# found & different => ask user to check +# found & same => do nothing +# + +replaceLineInFile() { + FileName=$1 + newLine=$2 + oldLine=$3 + + if [ -z "$oldLine" ] + then + echo "$newLine" >> $FileName + + elif [ "$oldLine" != "$newLine" ] + then +# We really expect this to be the case. + + cat $FileName | grep -v "$oldLine" > ${FileName}.tmp + mv ${FileName}.tmp $FileName + echo "$newLine" >> $FileName + echo "Updated." + + fi +} + + +#------------------------------------------------------------------------ +# changeXinetdServiceUser +# Change the run user of the xinetd service + +changeXinetdServiceUser() { + + InitFile=/etc/xinetd.d/firebird + if [ -f $InitFile ] + then + ed -s $InitFile </dev/null 2>&1 +} + + +#------------------------------------------------------------------------ +# Delete new user and group + + +deleteFirebirdUser() { + + userdel firebird + # groupdel firebird + +} + + + +#------------------------------------------------------------------------ +# add a service line in the (usually) /etc/services or /etc/inetd.conf file +# Here there are three cases, not found => add service line, +# found & different => ask user to check +# found & same => do nothing +# + +replaceLineInFile() { + FileName=$1 + newLine=$2 + oldLine=$3 + + if [ -z "$oldLine" ] + then + echo "$newLine" >> $FileName + + elif [ "$oldLine" != "$newLine" ] + then +# We really expect this to be the case. + + cat $FileName | grep -v "$oldLine" > ${FileName}.tmp + mv ${FileName}.tmp $FileName + echo "$newLine" >> $FileName + echo "Updated." + + fi +} + + +#------------------------------------------------------------------------ +# changeInitRunUser + + +changeInitRunUser() { + + NewUser=$1 + + InitFile=/etc/rc.d/init.d/firebird + if [ -f $InitFile ] + then + ed $InitFile </dev/null 2>&1 +} + + +#------------------------------------------------------------------------ +# Delete new user and group + + +deleteFirebirdUser() { + + userdel firebird + # groupdel firebird + +} + + + +#------------------------------------------------------------------------ +# add a service line in the (usually) /etc/services or /etc/inetd.conf file +# Here there are three cases, not found => add service line, +# found & different => ask user to check +# found & same => do nothing +# + +replaceLineInFile() { + FileName=$1 + newLine=$2 + oldLine=$3 + + if [ -z "$oldLine" ] + then + echo "$newLine" >> $FileName + + elif [ "$oldLine" != "$newLine" ] + then +# We really expect this to be the case. + + cat $FileName | grep -v "$oldLine" > ${FileName}.tmp + mv ${FileName}.tmp $FileName + echo "$newLine" >> $FileName + echo "Updated." + + fi +} + + +#------------------------------------------------------------------------ +# changeInitRunUser + + +changeInitRunUser() { + + NewUser=$1 + + InitFile=/etc/rc.d/init.d/firebird + if [ -f $InitFile ] + then + ed $InitFile < $DBAPasswordFile + echo "for user SYSDBA is : $NewPasswd" >> $DBAPasswordFile + echo "generated on `hostname` at time `date`" >> $DBAPasswordFile + echo "" >> $DBAPasswordFile + echo "(For superserver you will also want to check the password in the" >> $DBAPasswordFile + echo "daemon init routine in the file /etc/rc.d/init.d/firebird)" >> $DBAPasswordFile + echo "" >> $DBAPasswordFile + echo "Your password can be changed to a more suitable one using the" >> $DBAPasswordFile + echo "/opt/interbase/bin/gsec program as show below:" >> $DBAPasswordFile + echo "" >> $DBAPasswordFile + echo ">cd /opt/interbase" >> $DBAPasswordFile + echo ">bin/gsec -user sysdba -password " >> $DBAPasswordFile + echo "GSEC>modify sysdba -pw " >> $DBAPasswordFile + echo "GSEC>quit" >> $DBAPasswordFile + + chmod u=rw,go= $DBAPasswordFile + + $IBBin/gsec -user sysdba -password masterkey < $DBAPasswordFile + echo "for user SYSDBA is : $NewPasswd" >> $DBAPasswordFile + echo "generated on `hostname` at time `date`" >> $DBAPasswordFile + echo "" >> $DBAPasswordFile + echo "(For superserver you will also want to check the password in the" >> $DBAPasswordFile + echo "daemon init routine in the file /etc/rc.d/init.d/firebird)" >> $DBAPasswordFile + echo "" >> $DBAPasswordFile + echo "Your password can be changed to a more suitable one using the" >> $DBAPasswordFile + echo "/opt/interbase/bin/gsec program as show below:" >> $DBAPasswordFile + echo "" >> $DBAPasswordFile + echo ">cd /opt/interbase" >> $DBAPasswordFile + echo ">bin/gsec -user sysdba -password " >> $DBAPasswordFile + echo "GSEC>modify sysdba -pw " >> $DBAPasswordFile + echo "GSEC>quit" >> $DBAPasswordFile + + chmod u=rw,go= $DBAPasswordFile + + $IBBin/gsec -user sysdba -password masterkey < add service line, +# found & different => ask user to check +# found & same => do nothing +# + +replaceLineInFile() { + FileName=$1 + newLine=$2 + oldLine=$3 + + if [ -z "$oldLine" ] + then + echo "$newLine" >> $FileName + + elif [ "$oldLine" != "$newLine" ] + then + echo "" + echo "--- Warning ----------------------------------------------" + echo "" + echo " In file $FileName found line: " + echo " $oldLine" + echo " Which differs from the expected line:" + echo " $newLine" + echo "" + +# AskQuestion "Press return to update file or ^C to abort install" + + cat $FileName | grep -v "$oldLine" > ${FileName}.tmp + mv ${FileName}.tmp $FileName + echo "$newLine" >> $FileName + echo "Updated." + + fi +} + +#------------------------------------------------------------------------ +# remove line from config file if it exists in it. + +removeLineFromFile() { + FileName=$1 + oldLine=$2 + + if [ ! -z "$oldLine" ] + then + cat $FileName | grep -v "$oldLine" > ${FileName}.tmp + mv ${FileName}.tmp $FileName + echo "Updated." + + fi +} + + + +#------------------------------------------------------------------------ +# changeInitPassword + + +changeInitPassword() { + + NewPasswd=$1 + + InitFile=/etc/rc.d/init.d/firebird + if [ -f $InitFile ] + then + ed $InitFile < $DBAPasswordFile + echo "for user SYSDBA is : $NewPasswd" >> $DBAPasswordFile + + echo "for install on `hostname` at time `date`" >> $DBAPasswordFile + echo "You should change this password at the earliest oportunity" >> $DBAPasswordFile + echo "" + + echo "(For superserver you will also want to check the password in the" >> $DBAPasswordFile + echo "daemon init routine in the file /etc/rc.d/init.d/firebird)" >> $DBAPasswordFile + echo "" >> $DBAPasswordFile + echo "Your should password can be changed to a more suitable one using the" >> $DBAPasswordFile + echo "/opt/interbase/bin/gsec program as show below:" >> $DBAPasswordFile + echo "" >> $DBAPasswordFile + echo ">cd /opt/interbase" >> $DBAPasswordFile + echo ">bin/gsec -user sysdba -password " >> $DBAPasswordFile + echo "GSEC>modify sysdba -pw " >> $DBAPasswordFile + echo "GSEC>quit" >> $DBAPasswordFile + + chmod u=r,go= $DBAPasswordFile + +} + +#------------------------------------------------------------------------ +# Generate new sysdba password + + +generateNewDBAPassword() { + + +# Not all systems have mkpasswd, and there is also another mkpasswd which +# does different things. So if not at this specific place leave as default + + + NewPasswd=`/usr/bin/mkpasswd -l 8` + + DBAPasswordFile=$IBRootDir/SYSDBA.password + NewPasswd=`mkpasswd -l 8` + echo "Firebird generated password " > $DBAPasswordFile + echo "for user SYSDBA is : $NewPasswd" >> $DBAPasswordFile + echo "generated on `hostname` at time `date`" >> $DBAPasswordFile + echo "" >> $DBAPasswordFile + echo "(For superserver you will also want to check the password in the" >> $DBAPasswordFile + echo "daemon init routine in the file /etc/rc.d/init.d/firebird)" >> $DBAPasswordFile + echo "" >> $DBAPasswordFile + echo "Your password can be changed to a more suitable one using the" >> $DBAPasswordFile + echo "/opt/interbase/bin/gsec program as show below:" >> $DBAPasswordFile + echo "" >> $DBAPasswordFile + echo ">cd /opt/interbase" >> $DBAPasswordFile + echo ">bin/gsec -user sysdba -password " >> $DBAPasswordFile + echo "GSEC>modify sysdba -pw " >> $DBAPasswordFile + echo "GSEC>quit" >> $DBAPasswordFile + + chmod u=rw,go= $DBAPasswordFile + + $IBBin/gsec -user sysdba -password masterkey < ibmgr < ${FileName}.tmp + mv ${FileName}.tmp $FileName + echo "Updated." + + fi +} + + + +#= Main ProstUn =============================================================== + + + if [ -L /usr/lib/libgds.so ] + then + rm -f /usr/lib/libgds.so + fi + + # Update /etc/services + + + FileName=/etc/services + oldLine=`grep "^gds_db" $FileName` + + removeLineFromFile "$FileName" "$oldLine" + diff --git a/src/install/super/SSpreinstall.sh b/src/install/super/SSpreinstall.sh new file mode 100755 index 0000000000..ec684add16 --- /dev/null +++ b/src/install/super/SSpreinstall.sh @@ -0,0 +1,237 @@ +#! /bin/sh + + +#------------------------------------------------------------------------ +# Prompt for response, store result in Answer + +Answer="" + +AskQuestion() { + Test=$1 + DefaultAns=$2 + echo -n "${1}" + Answer="$DefaultAns" + read Answer +} + +#------------------------------------------------------------------------ +# stop super server if it is running +# Also will only stop firebird, since that has the init script + + +stopServerIfRunning() { + + checkString=`ps -efww| egrep "(ibserver|ibguard)" |grep -v grep` + + if [ ! -z "$checkString" ] + then + if [ -f /etc/rc.d/init.d/firebird ] + then + /etc/rc.d/init.d/firebird stop + fi + fi +} + +#------------------------------------------------------------------------ +# Check if server is running + + +checkIfServerRunning() { + + + stopServerIfRunning + + checkString=`ps -efww| egrep "(ibserver|ibguard)" |grep -v grep` + + if [ ! -z "$checkString" ] + then + echo "An instance of the Firebird/InterBase Super server seems to be running." + echo "Please quit all interbase applications and then proceed" + exit 1 + fi + + + + checkString=`ps -efww| egrep "(gds_inet_server|gds_pipe)" |grep -v grep` + + if [ ! -z "$checkString" ] + then + echo "An instance of the Firebird/InterBase server seems to be running." + echo "Please quit all interbase applications and then proceed." + exit 1 + fi + + + +# Stop lock manager if it is the only thing running. + + for i in `ps -efww | grep "gds_lock_mgr" | grep -v "grep" | awk '{print $2}' ` + do + kill $i + done + + +} + + +#------------------------------------------------------------------------ +# Run process and check status + + +runAndCheckExit() { + Cmd=$* + +# echo $Cmd + $Cmd + + ExitCode=$? + + if [ $ExitCode -ne 0 ] + then + echo "Install aborted: The command $Cmd " + echo " failed with error code $ExitCode" + exit $ExitCode + fi +} + + +#------------------------------------------------------------------------ +# Display message if this is being run interactively. + + +displayMessage() { + + msgText=$1 + if [ ! -z "$InteractiveInstall" ] + then + echo $msgText + fi +} + + +#------------------------------------------------------------------------ +# Archive any existing prior installed files. +# The 'cd' stuff is to avoid the "leading '/' removed message from tar. +# for the same reason the DestFile is specified without the leading "/" + + +archivePriorInstallSystemFiles() { + + oldPWD=`pwd` + archiveFileList="" + + cd / + + + DestFile="opt/interbase" + if [ -e "$DestFile" ] + then + echo "" + echo "" + echo "" + echo "--- Warning ----------------------------------------------" + echo " The installation target directory: $IBRootDir" + echo " Already contains a prior installation of InterBase/Firebird." + echo " This and files found in /usr/include and /usr/lib will be" + echo " archived in the file : ${ArchiveMainFile}" + echo "" + + if [ ! -z "$InteractiveInstall" ] + then + AskQuestion "Press return to continue or ^C to abort" + fi + + if [ -e $DestFile ] + then + archiveFileList="$archiveFileList $DestFile" + fi + fi + + + for i in gds.h ibase.h iberror.h ib_util.h + do + DestFile=usr/include/$i + if [ -e $DestFile ] + then + archiveFileList="$archiveFileList $DestFile" + fi + done + + for i in gds_pyxis.a gds.a libgds.so.0 libgds.so ib_util.so + do + DestFile=usr/lib/$i + if [ -e $DestFile ] + then + archiveFileList="$archiveFileList $DestFile" + fi + done + + if [ ! -z "$archiveFileList" ] + then + + displayMessage "Archiving..." + + runAndCheckExit "tar -czf $ArchiveMainFile $archiveFileList" + + + displayMessage "Done." + displayMessage "Deleting..." + + for i in $archiveFileList + do + rm -rf $i + done + + displayMessage "Done." + + fi + cd $oldPWD + +} + + +#------------------------------------------------------------------------ +# Check for installed RPM package + +checkForRPMInstall() { + PackageName=$1 + + rpm -q $PackageName + STATUS=$? + if [ $STATUS -eq 0 ] + then + echo "Previous version of $PackageName is detected on your system." + echo "this will conflict with the current install of Firebird" + echo "Please unistall the previous version `rpm -q $PackageName` and then proceed." + exit $STATUS + fi + +} + + + +#== Main Pre ================================================================= + + IBRootDir=/opt/interbase + IBBin=$IBRootDir/bin + ArchiveDateTag=`date +"%Y%m%d_%H%M"` + ArchiveMainFile="${IBRootDir}_${ArchiveDateTag}.tar.gz" + + + +# Ok so any of the following packages are a problem +# these don't work at least in the latest rpm manager, since it +# has the rpm database locked and it fails. + +# checkForRPMInstall InterBase +# checkForRPMInstall FirebirdCS +# checkForRPMInstall FirebirdSS + + + checkIfServerRunning + + +# Failing that we archive any files we find + + archivePriorInstallSystemFiles + diff --git a/src/install/super/SSpreuninstall.sh b/src/install/super/SSpreuninstall.sh new file mode 100755 index 0000000000..c24ae5d1c0 --- /dev/null +++ b/src/install/super/SSpreuninstall.sh @@ -0,0 +1,57 @@ +#! /bin/sh + + + +#------------------------------------------------------------------------ +# stop server if it is running + + +stopServerIfRunning() { + + checkString=`ps -ef| egrep "(ibserver|ibguard)" |grep -v grep` + + if [ ! -z "$checkString" ] + then + /etc/rc.d/init.d/firebird stop + fi +} + + + +#= Main PreUn ================================================================ + + + + IBRootDir=/opt/interbase + IBBin=$IBRootDir/bin + + + stopServerIfRunning + + /sbin/chkconfig --del firebird + + + cd $IBRootDir + if [ -f isc4.gdb ] + then + cp isc4.gdb /tmp + echo "Saved a copy of isc4.gdb in /tmp" + fi + + + for i in isc_init1* isc_event1* isc_lock1* isc_guard* interbase.log SYSDBA.password + do + if [ -f $i ] + then + rm -f $i + fi + done + + + rm -f $IBBin/ibmgr + + + + + + diff --git a/src/install/super/SSrpmfiles.txt b/src/install/super/SSrpmfiles.txt new file mode 100644 index 0000000000..48e310ea38 --- /dev/null +++ b/src/install/super/SSrpmfiles.txt @@ -0,0 +1,47 @@ + %dir /opt/interbase + %dir /opt/interbase/bin + %dir /opt/interbase/lib + %dir /opt/interbase/UDF + %dir /opt/interbase/intl + %dir /opt/interbase/help + /opt/interbase/bin/gbak + /opt/interbase/bin/gdef + /opt/interbase/bin/gds_lock_print + /opt/interbase/bin/gfix + /opt/interbase/bin/gpre + /opt/interbase/bin/gsec + /opt/interbase/bin/gsplit + /opt/interbase/bin/gstat + /opt/interbase/bin/isc4.gbak + /opt/interbase/bin/isql + /opt/interbase/bin/qli + /opt/interbase/bin/ibmgr.bin + /opt/interbase/bin/ibserver + /opt/interbase/bin/ibguard + + /opt/interbase/bin/SSchangeRunUser.sh + /opt/interbase/bin/SSrestoreRootRunUser.sh + /opt/interbase/bin/changeDBAPassword.sh + + /opt/interbase/examples + /opt/interbase/help/help.gbak + /opt/interbase/help/help.gdb + /opt/interbase/include + /usr/include/gds.h + /usr/include/iberror.h + /usr/include/ibase.h + /opt/interbase/doc + /opt/interbase/interbase.msg + /opt/interbase/isc4.gdb + /opt/interbase/isc_config + /usr/lib/libgds.so.0 + /usr/lib/libgds.so + /usr/lib/libib_util.so + /usr/lib/libgds_pyxis.a + /opt/interbase/intl/gdsintl + /opt/interbase/UDF/ib_udf + /opt/interbase/services.isc + /opt/interbase/README + + /etc/rc.d/init.d/firebird + diff --git a/src/install/super/SSrpmheader.txt b/src/install/super/SSrpmheader.txt new file mode 100644 index 0000000000..91095ec1a8 --- /dev/null +++ b/src/install/super/SSrpmheader.txt @@ -0,0 +1,15 @@ +Summary: Firebird Database Server and Client tools. +Name: FirebirdSS +Version: 0.9 +Release: 4 +Copyright: Distributable +Group: Applications/Databases +Source: FirebirdSS0.9src.tar.gz +URL: http://firebird.sourceforge.net +Prefix: /opt +AutoReqProv: no + +%description +Firebird is a powerful, high-performance relational database designed to be embedded into +applications on multiple platforms. +