8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-22 16:03:03 +01:00

HPUX Port

This commit is contained in:
paulbeach 2008-01-07 12:26:23 +00:00
parent 2fa0acc8ad
commit f3c21d4ca2
30 changed files with 3640 additions and 21 deletions

View File

@ -0,0 +1,165 @@
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
# You may obtain a copy of the Licence at
# http://www.gnu.org/licences/lgpl.html
#
# As a special exception this file can also be included in modules
# with other source code as long as that source code has been
# released under an Open Source Initiative certificed licence.
# More information about OSI certification can be found at:
# http://www.opensource.org
#
# This module 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
# GNU Lesser General Public Licence for more details.
#
# This module was created by members of the firebird development
# team. All individual contributions remain the Copyright (C) of
# those individuals and all rights are reserved. Contributors to
# this file are either listed below or can be obtained from a CVS
# history command.
#
# Created by: Mark O'Donohue <mark.odonohue@ludwig.edu.au>
#
# Contributor(s):
#
#
# $Id: Makefile.in,v 1.2 2008-01-07 12:25:37 paulbeach Exp $
#
ROOT=..
include $(ROOT)/gen/make.defaults
include $(ROOT)/gen/make.platform
include $(ROOT)/gen/make.rules
include $(ROOT)/gen/make.shared.variables
FirebirdInstallPrefix=@prefix@
@SET_MAKE@
FIREBIRD=$(FirebirdInstallPrefix)
export -n FIREBIRD
export -n INTERBASE
.PHONY: install dist packages tarfile
.PHONY: buildTarDir buildImageDir buildRoot buildDebugInfo
# 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=.
FirebirdBuildPrefix=$(GEN_ROOT)
#export FirebirdBuildPrefix
#export FirebirdInstallPrefix
#export PackageVersion
BuildVersion=$(FirebirdVersion).$(BuildNum)
Version=$(BuildVersion)-$(PackageVersion)
# This means something like: FirebirdCS-2.0.0-1.i386.tar
TarDir= Firebird$(ArchPrefix)-$(Version).$(CpuType)
TarFile=Firebird$(ArchPrefix)-$(Version).$(CpuType).tar
RPMFile=Firebird$(ArchPrefix)-$(Version).$(CpuType).rpm
DebugDir=Firebird$(ArchPrefix)-debuginfo-$(Version).$(CpuType)
DebugFile=Firebird$(ArchPrefix)-debuginfo-$(Version).$(CpuType).tar
PkgSrcDir=$(InstallRoot)/$(ArchType)
ScriptDir=$(GEN_ROOT)/install/scripts/
RPMSrcDir=$(GEN_ROOT)/install/scripts
TarInstallDir=$(GEN_ROOT)/install
dist : packages
packages: tarfile debugfile
tarfile: $(TarFile)
$(TarFile) : buildTarDir
(cd $(GEN_ROOT); tar -cvf $(TarFile) $(TarDir))
debugfile: $(DebugFile)
$(DebugFile) : buildImageDir
(cd $(GEN_ROOT)/$(DebugDir); tar -cvf ../$(DebugFile) *)
# objcopy --add-gnu-debuglink fails with binutils 2.14 or older
# its failure affects only GDB ability to pick up external debug
# symbols automatically. We may use eu-strip command from elfutils
# instead, but it doesn't work or compile with such distros
# as Mandrake 9.0 not saying about older ones. New binutils
# seem to compile and work everywhere I tried, but we try to
# use eu-strip first since it is a part of default Red Hat 9
# install and is available in binary form for Mandrake 9.1 and newer.
#
# 28-Dec-2003. Nickolay Samofatov
#
# Do not use eu-strip any longer because version 0.89/AMD64 shipped with
# Mandrake 9.2 produces broken debuginfo packages and there is no easy way to
# detect the breakage. Binutils seem to be more reliable alternative to me.
#
# 05-Apr-2004. Nickolay Samofatov
#
buildRoot:
(cd $(GEN_ROOT); ./install/makeinstallImage.sh)
buildDebugInfo: buildRoot
mkdir -p $(GEN_ROOT)/$(DebugDir)
for x in `(cd $(GEN_ROOT)/buildroot; find)`; do \
FIL=$(GEN_ROOT)/buildroot/$$x; \
D_FIL=$(GEN_ROOT)/$(DebugDir)/`dirname $${x}`/.debug/`basename $${x}`.debug; \
if [ ! -h $$FIL ] && readelf -h $$FIL > /dev/null 2> /dev/null; then \
mkdir -p $(GEN_ROOT)/$(DebugDir)/`dirname $$x`/.debug; \
echo Generating external debug info for $$x; \
cp $${FIL} $${D_FIL}; \
if objcopy --add-gnu-debuglink $${D_FIL} $${FIL}; > /dev/null 2> /dev/null; then \
echo Succeeded using objcopy from binutils; \
else \
echo Failed to set debug link for $${x}; \
fi; \
echo Stripping unneeded symbols from $${x}; \
objcopy --strip-debug --strip-unneeded $${FIL}; \
fi; \
done
# Work around GDB 6.0 bug
mkdir -p $(GEN_ROOT)/$(DebugDir)@libdir@/.debug
for x in `ls $(GEN_ROOT)/$(DebugDir)@prefix@/lib/.debug`; do \
ln -f -s @prefix@/lib/.debug/`basename $$x` $(GEN_ROOT)/$(DebugDir)@libdir@/.debug; \
done
# Use this line if you don't want to use separate debug info
buildImageDir: buildRoot
#buildImageDir: buildDebugInfo
buildTarDir: buildImageDir
mkdir -p $(GEN_ROOT)/$(TarDir)
cp -r $(GEN_ROOT)/install/scripts $(GEN_ROOT)/$(TarDir)
cp -r $(GEN_ROOT)/install/scripts/tarmainInstall.sh $(GEN_ROOT)/$(TarDir)/install.sh
chmod a+x $(GEN_ROOT)/$(TarDir)/install.sh $(GEN_ROOT)/$(TarDir)/scripts/*sh
(cd $(GEN_ROOT)/buildroot; tar -cvf buildroot.tar usr opt )
(cd $(GEN_ROOT)/buildroot; tar -tvf buildroot.tar > manifest.txt )
(cd $(GEN_ROOT)/buildroot; cp buildroot.tar ../$(TarDir)/buildroot.tar ) (cd $(GEN_ROOT)/buildroot; cp manifest.txt ../$(TarDir)/manifest.txt )
install: buildTarDir
(cd $(GEN_ROOT)/$(TarDir); ./install.sh)
cp -r $(GEN_ROOT)/$(DebugDir)/* /

View File

@ -0,0 +1,256 @@
#!/bin/sh
# This library is part of the FirebirdSQL project
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
# You may obtain a copy of the Licence at
# http://www.gnu.org/licences/lgpl.html
#
# As a special exception this file can also be included in modules
# with other source code as long as that source code has been
# released under an Open Source Initiative certificed licence.
# More information about OSI certification can be found at:
# http://www.opensource.org
#
# This module 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
# GNU Lesser General Public Licence for more details.
#
# This module was created by members of the firebird development
# team. All individual contributions remain the Copyright (C) of
# those individuals and all rights are reserved. Contributors to
# this file are either listed below or can be obtained from a CVS
# history command.
#
# Created by: Mark O'Donohue <mark.odonohue@ludwig.edu.au>
#
# Contributor(s):
#
#
# $Id: makeinstallImage.sh.in,v 1.2 2008-01-07 12:25:43 paulbeach Exp $
#
# Script to copy install files from the build/transport area
# This script builds an image of the installed system into
# the gen/buildroot directory.
# Making an assumption that this program is being run in the gen directory
BuildRootDir=..
BuiltFBDir=./firebird # Where the just built fb exists.
TargetDir=buildroot # Where we want to build the install image
RealRootDir=@prefix@ # Where it will be installed on new machine
FBRootDir=${RealRootDir#/} # strip off leading /
DestDir=$TargetDir/$FBRootDir
#------------------------------------------------------------------------
# addLibs
# Add required libraries in the beginning of the script
# Place it to target directory
addLibs() {
libSdir=$1
libScript=$2
libTdir=$3
libTarget=$libTdir/$libScript
rm -f $libTarget
touch $libTarget
for i in posixLibrary.sh classicLibrary.sh hpuxLibrary.sh
do
echo "# $i" >>$libTarget
cat $libSdir/$i >>$libTarget
echo "" >>$libTarget # avoid missing linefeed
done
cat $libSdir/$libScript >>$libTarget
}
#-------------------------------------------------------------------
# copyIfExists
# Copy file if it exists
#
copyIfExists() {
OldFile=$1
NewFile=$2
if [ -f $OldFile ]
then
cp $OldFile $NewFile
fi
}
#------------------------------------------------------------------------
# copyFiles
# This function copies all the files for a classic distribution into a
# directory heirachy mirroring the installation.
copyFiles() {
# The guts of the tranfer of files and other directories
if [ -d $TargetDir ]
then
rm -fr $TargetDir
fi
mkdir -p $DestDir
mkdir $DestDir/bin
mkdir $DestDir/examples
mkdir $DestDir/help
mkdir $DestDir/include
mkdir $DestDir/intl
mkdir $DestDir/lib
mkdir $DestDir/doc
mkdir $DestDir/doc/sql.extensions
mkdir $DestDir/UDF
mkdir $DestDir/misc
mkdir $DestDir/upgrade
# mkdir $TargetDir/etc
# mkdir $TargetDir/etc/init.d
# mkdir $TargetDir/var
# mkdir $TargetDir/var/adm
# mkdir $TargetDir/var/adm/fillup-templates
# mkdir -p $TargetDir/usr/sbin
mkdir -p $TargetDir@libdir@
mkdir -p $TargetDir/usr/include
cp -f $BuiltFBDir/bin/fb_inet_server $DestDir/bin/fb_inet_server
cp $BuiltFBDir/bin/gbak $DestDir/bin/gbak
cp $BuiltFBDir/bin/gdef $DestDir/bin/gdef
cp $BuiltFBDir/bin/gds_drop $DestDir/bin/gds_drop
copyIfExists $BuiltFBDir/bin/fb_lock_mgr $DestDir/bin/fb_lock_mgr
copyIfExists $BuiltFBDir/bin/fb_lock_print $DestDir/bin/fb_lock_print
copyIfExists $BuiltFBDir/bin/gds_pipe $DestDir/bin/gds_pipe
cp $BuiltFBDir/bin/gfix $DestDir/bin/gfix
cp $BuiltFBDir/bin/gpre $DestDir/bin/gpre
cp $BuiltFBDir/bin/gsec $DestDir/bin/gsec
cp $BuiltFBDir/bin/nbackup $DestDir/bin/nbackup
copyIfExists $BuiltFBDir/bin/gsplit $DestDir/bin/gsplit
cp $BuiltFBDir/bin/gstat $DestDir/bin/gstat
copyIfExists $BuiltFBDir/bin/isc4.gbak $DestDir/bin/isc4.gbak
cp $BuiltFBDir/bin/isql $DestDir/bin/isql
cp $BuiltFBDir/bin/qli $DestDir/bin/qli
# Append libraries to scripts
addLibs $BuildRootDir/gen/firebird/bin changeRunUser.sh $BuildRootDir/gen/install/bin
addLibs $BuildRootDir/gen/firebird/bin restoreRootRunUser.sh $BuildRootDir/gen/install/bin
addLibs $BuildRootDir/gen/firebird/bin changedbaPassword.sh $BuildRootDir/gen/install/bin
addLibs $BuiltFBDir/bin changegdslibrarycompatibleLink.sh $BuildRootDir/gen/install/bin
addLibs $BuildRootDir/gen/firebird/bin tarmainInstall.sh $BuildRootDir/gen/install/scripts
addLibs $BuildRootDir/gen/firebird/bin tarInstall.sh $BuildRootDir/gen/install/scripts
addLibs $BuildRootDir/gen/firebird/bin preInstall.sh $BuildRootDir/gen/install/scripts
addLibs $BuildRootDir/gen/firebird/bin postInstall.sh $BuildRootDir/gen/install/scripts
addLibs $BuildRootDir/gen/firebird/bin preUninstall.sh $BuildRootDir/gen/install/scripts
addLibs $BuildRootDir/gen/firebird/bin postUninstall.sh $BuildRootDir/gen//install/scripts
addLibs $BuildRootDir/gen/firebird/bin tarUninstall.sh $BuildRootDir/gen/install/scripts
addLibs $BuildRootDir/gen/firebird/bin tarmainUninstall.sh $BuildRootDir/gen/install/scripts
mv $BuildRootDir/gen/install/scripts/tarmainUninstall.sh $BuildRootDir/gen/install/scripts/tarMainUninstall.sh
cp $BuildRootDir/gen/firebird/bin/createaliasDB.sh $BuildRootDir/gen/install/bin/createaliasDB.sh
rm $BuildRootDir/gen/firebird/bin/*.sh
cp $BuildRootDir/gen/install/bin/changeRunUser.sh $DestDir/bin
cp $BuildRootDir/gen/install/bin/restoreRootRunUser.sh $DestDir/bin
cp $BuildRootDir/gen/install/bin/changedbaPassword.sh $DestDir/bin
cp $BuildRootDir/gen/install/bin/changegdslibrarycompatibleLink.sh $DestDir/bin
cp $BuildRootDir/gen/install/bin/createaliasDB.sh $DestDir/bin
# These scripts do not need libraries
cp $BuiltFBDir/bin/fb_config $DestDir/bin
cp $BuildRootDir/gen/install/misc/firebird.init.d.hpux $DestDir/misc
cp $BuildRootDir/gen/install/misc/rc.config.firebird.hpux $DestDir/misc
# Copy examples only if we have them
exampleFiles=`find $BuiltFBDir/examples/README -type f -print`
if [ -z "$exampleFiles" ]
then
echo "Example files have not been built!"
else
(cd $BuiltFBDir/examples; tar cf - .) | (cd $DestDir/examples; tar xf -)
fi
copyIfExists $BuiltFBDir/help/help.gbak $DestDir/help
cp $BuiltFBDir/help/help.fdb $DestDir/help
#cp -r $BuildSrcDir/doc $DestDir
#cp -r $BuiltFBDir/doc $DestDir
cp $BuiltFBDir/firebird.msg $DestDir/firebird.msg
cp $BuiltFBDir/$SecurityDatabase $DestDir/$SecurityDatabase
cp $BuiltFBDir/include/*.h $DestDir/include
cp -f $BuiltFBDir/lib/libfbembed.sl* $DestDir/lib
cp -f $BuiltFBDir/lib/libfbclient.sl* $DestDir/lib
cp -f $BuiltFBDir/lib/libib_util.sl $DestDir/lib/libib_util.sl
cp -f $BuiltFBDir/lib/libicu*.sl* $DestDir/lib/
cp $BuiltFBDir/intl/libfbintl.sl $DestDir/intl/fbintl
cp $BuiltFBDir/UDF/ib_udf.sl $DestDir/UDF/
cp $BuiltFBDir/UDF/fbudf.sl $DestDir/UDF/
# Note that the following items copy files from outside the build tree
# Copy the sql-declarations into the UDF-directory
cp $BuildRootDir/src/extlib/ib_udf.sql $DestDir/UDF/
cp $BuildRootDir/src/extlib/ib_udf2.sql $DestDir/UDF/
cp $BuildRootDir/src/extlib/fbudf/fbudf.sql $DestDir/UDF/
# Copy various documentation
cp $BuildRootDir/doc/*.pdf $DestDir/doc
cp $BuildRootDir/doc/README.* $DestDir/doc
cp $BuildRootDir/doc/sql.extensions/README* $DestDir/doc/sql.extensions
cp $BuildRootDir/doc/WhatsNew $DestDir/WhatsNew
cp $BuildRootDir/doc/README.user $DestDir/README
# Misc config files
cp $BuildRootDir/gen/install/misc/firebird.conf $DestDir/firebird.conf
cp $BuildRootDir/gen/install/misc/aliases.conf $DestDir/
cp $BuildRootDir/gen/install/misc/fbintl.conf $DestDir/intl/
# Create links from @libdir@ to install area.
origDir=`pwd`
cd $DestDir/lib
for i in libfb*.sl*; do ln -s /$FBRootDir/lib/$i $origDir/$TargetDir@libdir@/$i; done
cd $origDir
ln -s ../../$FBRootDir/lib/libib_util.sl $TargetDir@libdir@/libib_util.sl
# link include files to /usr/include
for i in iberror.h ibase.h ib_util.h
do
ln -s ../../$FBRootDir/include/$i $TargetDir/usr/include/$i
done
# (cd $DestDir; touch firebird.log;)
# chmod u=rw,go= firebird.log)
# (cd $DestDir; chmod uga+rw examples/*.gdb)
# chown -R root:root $TargetDir
}
#=== MAIN ====================================================================
SecurityDatabase=security2.fdb
copyFiles

View File

@ -0,0 +1,120 @@
#!/bin/sh
#
# This library is part of the Firebird project
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
# You may obtain a copy of the Licence at
# http://www.gnu.org/licences/lgpl.html
#
# As a special exception this file can also be included in modules
# with other source code as long as that source code has been
# released under an Open Source Initiative certificed licence.
# More information about OSI certification can be found at:
# http://www.opensource.org
#
# This module 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
# GNU Lesser General Public Licence for more details.
#
# This module was created by members of the firebird development
# team. All individual contributions remain the Copyright (C) of
# those individuals and all rights are reserved. Contributors to
# this file are either listed below or can be obtained from a CVS
# history command.
#
# Created by: Mark O'Donohue <mark.odonohue@ludwig.edu.au>
#
# Contributor(s):
#
#
# $Id: postInstall.sh.in,v 1.2 2008-01-07 12:25:43 paulbeach Exp $
#
# The post install script for Firebird Classic
# Make sure the links are in place
if [ -z "$FirebirdInstallPrefix" ]
then
FirebirdInstallPrefix=@prefix@
fi
origDir=`pwd`
# Update /etc/services
# The \n is needed, some /etc/services files are missing a trailing
# line feed - MOD 7-Nov-2002
FileName=/etc/services
newLine="gds_db 3050/tcp # Firebird SQL Database Remote Protocol"
oldLine=`grep "^gds_db" $FileName`
if [ -z "$oldLine" ]
then
echo "" >> $FileName
echo $newLine >> $FileName
echo "" >> $FileName
# replaceLineInFile "$FileName" "$newLine" "$oldLine"
fi
updateHostsDotFile
# add Firebird user
if [ $RunUser = "firebird" ]
then
addFirebirdUser
fi
# Create Lock files
cd $FBRootDir
for i in isc_init1 isc_lock1 isc_event1
do
FileName=$i.`hostname`
touch $FileName
done
# Create log
touch firebird.log
# Update ownership and SUID bits for programs.
chown -R $RunUser $FBRootDir
chgrp -R $RunUser $FBRootDir
fixFilePermissions
echo "Updating Lock Manager"
cd $FBBin
for i in fb_lock_mgr
do
if [ -f $i ]
then
chown root $i
chmod ug=rx,o= $i
chmod ugo+s $i
fi
done
createLinksForBackCompatibility
buildUninstallFile
# Update the /etc/inetd.conf or xinetd entry
updateInetdServiceEntry
# Get inetd to reread new init files.
resetInetdServer
cd $FBRootDir
# Change sysdba password
changeDBAPassword

View File

@ -0,0 +1,45 @@
#!/bin/sh
#
# This library is part of the Firebird project
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
# You may obtain a copy of the Licence at
# http://www.gnu.org/licences/lgpl.html
#
# As a special exception this file can also be included in modules
# with other source code as long as that source code has been
# released under an Open Source Initiative certificed licence.
# More information about OSI certification can be found at:
# http://www.opensource.org
#
# This module 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
# GNU Lesser General Public Licence for more details.
#
# This module was created by members of the firebird development
# team. All individual contributions remain the Copyright (C) of
# those individuals and all rights are reserved. Contributors to
# this file are either listed below or can be obtained from a CVS
# history command.
#
# Created by: Mark O'Donohue <mark.odonohue@ludwig.edu.au>
#
# Contributor(s):
#
#
# $Id: postUninstall.sh.in,v 1.2 2008-01-07 12:25:44 paulbeach Exp $
#
# The post uninstall routine for Firebird Classic.
if [ "$1"=0 ]
then
removeLinksForBackCompatibility
removeInetdServiceEntry
fi
fi

View File

@ -0,0 +1,48 @@
#!/bin/sh
#
# This library is part of the FirebirdSQL project
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
# You may obtain a copy of the Licence at
# http://www.gnu.org/licences/lgpl.html
#
# As a special exception this file can also be included in modules
# with other source code as long as that source code has been
# released under an Open Source Initiative certificed licence.
# More information about OSI certification can be found at:
# http://www.opensource.org
#
# This module 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
# GNU Lesser General Public Licence for more details.
#
# This module was created by members of the firebird development
# team. All individual contributions remain the Copyright (C) of
# those individuals and all rights are reserved. Contributors to
# this file are either listed below or can be obtained from a CVS
# history command.
#
# Created by: Mark O'Donohue <mark.odonohue@ludwig.edu.au>
#
# Contributor(s):
#
#
# $Id: preInstall.sh.in,v 1.2 2008-01-07 12:25:44 paulbeach Exp $
#
# The pre install routine for Firebird Classic
#= Main Pre ================================================================
checkIfServerRunning
# Failing that we archive any files we find
archivePriorInstallSystemFiles

View File

@ -0,0 +1,55 @@
#! /bin/sh
#
# This library is part of the FirebirdSQL project
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
# You may obtain a copy of the Licence at
# http://www.gnu.org/licences/lgpl.html
#
# As a special exception this file can also be included in modules
# with other source code as long as that source code has been
# released under an Open Source Initiative certificed licence.
# More information about OSI certification can be found at:
# http://www.opensource.org
#
# This module 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
# GNU Lesser General Public Licence for more details.
#
# This module was created by members of the firebird development
# team. All individual contributions remain the Copyright (C) of
# those individuals and all rights are reserved. Contributors to
# this file are either listed below or can be obtained from a CVS
# history command.
#
# Created by: Mark O'Donohue <mark.odonohue@ludwig.edu.au>
#
# Contributor(s):
#
#
# $Id: preUninstall.sh.in,v 1.2 2008-01-07 12:25:45 paulbeach Exp $
#
# The pre uninstall routines for Firebird Classic
checkIfServerRunning
cd $FBRootDir
if [ -f $SecurityDatabase ]
then
cp $SecurityDatabase /tmp
echo "Saved a copy of $SecurityDatabase in /tmp"
fi
for i in isc_init1* isc_event1* isc_lock1* isc_guard* firebird.log SYSDBA.password
do
if [ -f $i ]
then
rm -f $i
fi
done

View File

@ -0,0 +1,46 @@
#! /bin/sh
#
# This library is part of the FirebirdSQL project
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
# You may obtain a copy of the Licence at
# http://www.gnu.org/licences/lgpl.html
#
# As a special exception this file can also be included in modules
# with other source code as long as that source code has been
# released under an Open Source Initiative certificed licence.
# More information about OSI certification can be found at:
# http://www.opensource.org
#
# This module 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
# GNU Lesser General Public Licence for more details.
#
# This module was created by members of the firebird development
# team. All individual contributions remain the Copyright (C) of
# those individuals and all rights are reserved. Contributors to
# this file are either listed below or can be obtained from a CVS
# history command.
#
# Created by: Mark O'Donohue <mark.odonohue@ludwig.edu.au>
#
# Contributor(s):
#
#
# $Id: tarInstall.sh.in,v 1.2 2008-01-07 12:25:45 paulbeach Exp $
#
# The way this works is that the buildroot file is stored relative to the root
# directory and a tar -xvf at root directory will restore all the files in
# the position that we want them to be
OrigDir=`pwd`
cd /
tar -xf $OrigDir/buildroot.tar
cd $OrigDir

View File

@ -0,0 +1,39 @@
#! /bin/sh
#
# This library is part of the FirebirdSQL project
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
# You may obtain a copy of the Licence at
# http://www.gnu.org/licences/lgpl.html
#
# As a special exception this file can also be included in modules
# with other source code as long as that source code has been
# released under an Open Source Initiative certificed licence.
# More information about OSI certification can be found at:
# http://www.opensource.org
#
# This module 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
# GNU Lesser General Public Licence for more details.
#
# This module was created by members of the firebird development
# team. All individual contributions remain the Copyright (C) of
# those individuals and all rights are reserved. Contributors to
# this file are either listed below or can be obtained from a CVS
# history command.
#
# Created by: Mark O'Donohue <mark.odonohue@ludwig.edu.au>
#
# Contributor(s):
#
#
# $Id: tarUninstall.sh.in,v 1.2 2008-01-07 12:25:46 paulbeach Exp $
#
removeInstalledFiles # Remove installed files
removeUninstallFiles # Remove the 'uninstall' utility files
removeEmptyDirs # Remove empty directories

View File

@ -0,0 +1,76 @@
#!/bin/sh
#
# This library is part of the FirebirdSQL project
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
# You may obtain a copy of the Licence at
# http://www.gnu.org/licences/lgpl.html
#
# As a special exception this file can also be included in modules
# with other source code as long as that source code has been
# released under an Open Source Initiative certificed licence.
# More information about OSI certification can be found at:
# http://www.opensource.org
#
# This module 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
# GNU Lesser General Public Licence for more details.
#
# This module was created by members of the firebird development
# team. All individual contributions remain the Copyright (C) of
# those individuals and all rights are reserved. Contributors to
# this file are either listed below or can be obtained from a CVS
# history command.
#
# Created by: Mark O'Donohue <mark.odonohue@ludwig.edu.au>
#
# Contributor(s):
#
#
# $Id: tarmainInstall.sh.in,v 1.2 2008-01-07 12:25:47 paulbeach Exp $
#
# Install script for FirebirdSQL database engine
# http://www.firebirdsql.org
InteractiveInstall=1
export InteractiveInstall
checkInstallUser
BuildVersion=@FIREBIRD_VERSION@.@FB_BUILD_NUM@
PackageVersion=@FIREBIRD_PACKAGE_VERSION@
CpuType=@CPU_TYPE@
Version="$BuildVersion-$PackageVersion.$CpuType"
cat <<EOF
Firebird @FIREBIRD_ARCH_TYPE@ $Version Installation
EOF
AskQuestion "Press Enter to start installation or ^C to abort"
# Here we are installing from a install tar file
if [ -e scripts ]
then
echo "Extracting install data"
runAndCheckExit "./scripts/preInstall.sh"
runAndCheckExit "./scripts/tarInstall.sh"
runAndCheckExit "./scripts/postInstall.sh"
fi
echo "Install completed"

View File

@ -0,0 +1,86 @@
#!/bin/sh
#
# This library is part of the FirebirdSQL project
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
# You may obtain a copy of the Licence at
# http://www.gnu.org/licences/lgpl.html
#
# As a special exception this file can also be included in modules
# with other source code as long as that source code has been
# released under an Open Source Initiative certificed licence.
# More information about OSI certification can be found at:
# http://www.opensource.org
#
# This module 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
# GNU Lesser General Public Licence for more details.
#
# This module was created by members of the firebird development
# team. All individual contributions remain the Copyright (C) of
# those individuals and all rights are reserved. Contributors to
# this file are either listed below or can be obtained from a CVS
# history command.
#
# Created by: Mark O'Donohue <mark.odonohue@ludwig.edu.au>
#
# Contributor(s):
#
#
# $Id: tarmainUninstall.sh.in,v 1.2 2008-01-07 12:25:47 paulbeach Exp $
#
# Install script for FirebirdSQL database engine
# http://www.firebirdsql.org
InteractiveInstall=1
export InteractiveInstall
checkInstallUser
BuildVersion=@FIREBIRD_VERSION@.@FB_BUILD_NUM@
PackageVersion=@FIREBIRD_PACKAGE_VERSION@
CpuType=@CPU_TYPE@
FBRootDir=@prefix@
Version="$BuildVersion-$PackageVersion.$CpuType"
cat <<EOF
Firebird @FIREBIRD_ARCH_TYPE@ $Version Uninstall program
Are you sure you want to proceed?
EOF
AskQuestion "Press Enter to start uninstall or ^C to abort"
# Here we are uninstalling from a install tar.gz file
scriptsDir=$FBRootDir/misc/scripts
if [ -e $scriptsDir ]
then
echo "Extracting install data"
runAndCheckExit "$scriptsDir/preUninstall.sh"
runAndCheckExit "$scriptsDir/postUninstall.sh"
# This one is done last since it deletes the script files
# as well.
runAndCheckExit "$scriptsDir/tarUninstall.sh"
fi
echo "Uninstall completed"

View File

@ -0,0 +1,194 @@
#! /bin/sh
# This shell script changes both the SYSDBA user
#------------------------------------------------------------------------
# Prompt for response, store result in Answer
Answer=""
AskQuestion() {
Test=$1
DefaultAns=$2
echo -n "${1}"
Answer="$DefaultAns"
read Answer
}
#------------------------------------------------------------------------
# changeInitPassword
changeInitPassword() {
NewPasswd=$1
DBAPasswordFile=$FBRootDir/SYSDBA.password
InitFile=/etc/rc.d/init.d/firebird
if [ ! -f $InitFile ]
then
InitFile=/etc/init.d/firebird
fi
if [ -f $InitFile ]
then
echo ""
echo Running ex to modify $InitFile
chmod u=rw,g=,o= $InitFile
ex $InitFile <<EOF
/ISC_PASSWORD/s/ISC_PASSWORD=.*/ISC_PASSWORD=$NewPasswd/g
w
q
EOF
chmod u=rwx,g=rx,o= $InitFile
fi
}
#------------------------------------------------------------------------
# Write new password to the @prefix@/SYSDBA.password file
writeNewPassword() {
NewPasswd=$1
DBAPasswordFile=$FBRootDir/SYSDBA.password
echo "# Firebird generated password for user SYSDBA is: " > $DBAPasswordFile
echo "" >> $DBAPasswordFile
echo "ISC_USER=sysdba" >> $DBAPasswordFile
echo "ISC_PASSWD=$NewPasswd" >> $DBAPasswordFile
echo "" >> $DBAPasswordFile
if [ $NewPasswd = "masterkey" ]
then
echo "# for install on `hostname` at time `date`" >> $DBAPasswordFile
echo "# You should change this password at the earliest oportunity" >> $DBAPasswordFile
else
echo "# generated on `hostname` at time `date`" >> $DBAPasswordFile
fi
echo "" >> $DBAPasswordFile
echo "# Your password can be changed to a more suitable one using the" >> $DBAPasswordFile
echo "# @prefix@/bin/changeDBAPassword.sh script" >> $DBAPasswordFile
# Additional instructions for super server
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
chmod u=r,go= $DBAPasswordFile
}
#------------------------------------------------------------------------
# Generate new sysdba password - this routine is used only in the
# rpm file not in the install acript.
generateNewDBAPassword() {
# openssl generates random data.
if [ -f /usr/bin/openssl ]
then
# We generate 20 random chars, strip any '/''s and get the first 8
NewPasswd=`openssl rand -base64 20 | tr -d '/' | cut -c1-8`
fi
# mkpasswd is a bit of a hassle, but check to see if it's there
if [ -z "$NewPasswd" ]
then
if [ -f /usr/bin/mkpasswd ]
then
NewPasswd=`/usr/bin/mkpasswd -l 8`
fi
fi
# So we failed to generate a new password, so keep the original
# installed one.
if [ -z "$NewPasswd" ]
then
NewPasswd="masterkey"
fi
writeNewPassword $NewPasswd
changeInitPassword "$NewPasswd"
}
#------------------------------------------------------------------------
# Change sysdba password - this routine is interactive and is only
# used in the install shell script not the rpm one.
askUserForNewDBAPassword() {
OrigPasswd=""
while [ -z "$OrigPasswd" ]
do
AskQuestion "Please enter current password for SYSDBA user: "
OrigPasswd=$Answer
done
NewPasswd=""
while [ -z "$NewPasswd" ]
do
AskQuestion "Please enter new password for SYSDBA user: "
NewPasswd=$Answer
if [ ! -z "$NewPasswd" ]
then
$FBBin/gsec -user sysdba -password $OrigPasswd <<EOF
modify sysdba -pw $NewPasswd
EOF
echo ""
writeNewPassword $NewPasswd
changeInitPassword "$NewPasswd"
fi
done
}
#------------------------------------------------------------------------
# Change sysdba password - this routine is interactive and is only
# used in the install shell script not the rpm one.
changeDBAPassword() {
if [ -z "$InteractiveInstall" ]
then
generateNewDBAPassword
else
askUserForNewDBAPassword
fi
}
#= Main Post ===============================================================
FBRootDir=@prefix@
FBBin=$FBRootDir/bin
RunUser=root
InteractiveInstall=true
export InteractiveInstall
changeDBAPassword

View File

@ -0,0 +1,186 @@
#!/bin/sh
#
# This library is part of the Firebird project
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
# You may obtain a copy of the Licence at
# http://www.gnu.org/licences/lgpl.html
#
# As a special exception this file can also be included in modules
# with other source code as long as that source code has been
# released under an Open Source Initiative certificed licence.
# More information about OSI certification can be found at:
# http://www.opensource.org
#
# This module 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
# GNU Lesser General Public Licence for more details.
#
# This module was created by members of the firebird development
# team. All individual contributions remain the Copyright (C) of
# those individuals and all rights are reserved. Contributors to
# this file are either listed below or can be obtained from a CVS
# history command.
#
# Created by: Mark O'Donohue <mark.odonohue@ludwig.edu.au>
#
# Contributor(s):
#
#
# $Id: changegdslibrarycompatibleLink.sh.in,v 1.2 2008-01-07 12:25:57 paulbeach Exp $
#
# This script allows the user to change the link on classic for the
# client library from
#
# a) libfbembed.sl original classic direct connection
# b) libfbclient.sl multithreaded client connection
#
#------------------------------------------------------------------------
# Prompt for response, store result in Answer
Answer=""
AskQuestion() {
Test=$1
DefaultAns=$2
echo -n "${1}"
Answer="$DefaultAns"
read Answer
if [ -z $Answer ]
then
Answer=$DefaultAns
fi
}
#------------------------------------------------------------------------
# remove Link
removeLink() {
fileName=$1
if [ -L $fileName ]
then
rm -f $fileName
fi
}
#------------------------------------------------------------------------
# quitIfRealFile
# Remove the backward comparibility links for libgds.sl
quitIfRealFile() {
fileToCheck=$1
# Don't worry about symbolic links
if [ -L $fileToCheck ]
then
return
fi
if [ -f $fileToCheck ]
then
echo "The file $fileToCheck is a real file not just a link to an "
echo "existing file. It therefore may be from a"
echo "previous firebird or InterBase(r) installation"
echo "You will need to manually check the status of this file"
echo "and remove it before running this script again"
exit
fi
}
#------------------------------------------------------------------------
# removeLinks
# Remove the backward comparibility links for libgds.sl
removeLinks() {
removeLink @libdir@/libgds.sl
removeLink @libdir@/libgds.sl.0
}
#------------------------------------------------------------------------
# createLinksForBackCompatibility
# Create links for back compatibility to InterBase and Firebird1.0
# linked systems.
createLinksForBackCompatibility() {
# These two links are required for compatibility with existing ib programs
# If the program had been linked with libgds.sl then this link is required
# to ensure it loads the fb equivalent. Eventually these should be
# optional and in a seperate rpm install. MOD 7-Nov-2002.
newLibrary=$FBRootDir/lib/$1
removeLinks
ln -s $newLibrary @libdir@/libgds.sl
ln -s $newLibrary @libdir@/libgds.sl.0
}
#------------------------------------------------------------------------
# printStatus
printStatus() {
printStatus=`ls -l @libdir@/libgds.sl | sed 's@^.* /usr@/usr@'`
echo $printStatus
}
#= Main ====================================================================
FBRootDir=@prefix@
FBBin=$FBRootDir/bin
cat <<EOF
For classic server there are two optional backward compatible client libraries.
These are libfbclient.sl and libfbembed.sl.
libfbclient.sl) enables your client to be multithreaded but must connect to a
database via a server.
libfbembed.sl) allows the client to directly open the database file, but does
not support multithreaded access
Your current setting is:
EOF
printStatus
echo ""
quitIfRealFile @libdir@/libgds.sl
quitIfRealFile @libdir@/libgds.sl.0
AskQuestion "Which option would you like to choose (client|embed|remove) [client] " "client"
case $Answer in
embed)
createLinksForBackCompatibility libfbembed.sl
;;
client)
createLinksForBackCompatibility libfbclient.sl
;;
remove)
removeLinks
;;
*)
echo "Unknown option $Answer chosen"
;;
esac

View File

@ -0,0 +1,161 @@
#! /bin/sh
#
# This library is part of the Firebird project
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
# You may obtain a copy of the Licence at
# http://www.gnu.org/licences/lgpl.html
#
# As a special exception this file can also be included in modules
# with other source code as long as that source code has been
# released under an Open Source Initiative certificed licence.
# More information about OSI certification can be found at:
# http://www.opensource.org
#
# This module 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
# GNU Lesser General Public Licence for more details.
#
# This module was created by members of the firebird development
# team. All individual contributions remain the Copyright (C) of
# those individuals and all rights are reserved. Contributors to
# this file are either listed below or can be obtained from a CVS
# history command.
#
# Created by: Mark O'Donohue <mark.odonohue@firebirdsql.org>
#
# Contributor(s):
#
#
#------------------------------------------------------------------------
# Prompt for response, store result in Answer
Answer=""
AskQuestion() {
Test=$1
DefaultAns=$2
echo -n "${1}"
Answer="$DefaultAns"
read Answer
}
#------------------------------------------------------------------------------
# appendAliasEntry
# check to see if an entry already exists in the aliases.conf file
# if it doesn't append it to the end of the file
appendAliasEntry() {
aliasName=$1
newDB=$2
# check if aliasName already exists
oldLine=`grep "^$aliasName" $AliasFile`
if [ -z $oldLine ]
then
# Create the alias file entry
echo "$aliasName = $newDB" >> $AliasFile
else
cat <<EOF
The alias name $aliasName already exists in $AliasFile
with value:
$oldLine
A new entry will not be created and the existing one will be used.
EOF
AskQuestion "Press return to continue or ^C to abort"
fi
}
#------------------------------------------------------------------------------
# checkNameStartsWithSlash
#
checkNameStartsWithSlash() {
name=$1
letter=`echo $name | cut -c1`
if [ $letter != "/" ]
then
cat <<EOF
The file name "$name" needs to be an absolute path to the file not a
relative path.
Possibly you want: `pwd`/$name
for the path name.
EOF
exit
fi
}
#------------------------------------------------------------------------------
# checkAccessToFile
# This routine should check that the firebird user has
# access to the file if it exists or the directory if it
# does not.
checkAccessToFile() {
fileName=$1
dirName=`dirname $fileName`
echo $fileName
echo $dirName
userName=`id -un`
if [ $userName = "root" ]
then
result=`su firebird -c " if [ -w $dirName ]; then echo 'Ok'; fi"`
fi
}
#= Main Post ===============================================================
FBRootDir=@prefix@
FBBin=$FBRootDir/bin
if [ $# -ne 2 ]
then
echo "Usage is createAliasDB.sh <name> <newDB>"
exit
fi
aliasName=$1
newDB=$2
AliasFile=$FBRootDir/aliases.conf
checkNameStartsWithSlash $newDB
appendAliasEntry $aliasName $newDB
# checkAccessToFile $newDB
if [ ! -f $newDB ]
then
#source $FBRootDir/SYSDBA.password
$FBBin/isql <<EOF
create database 'localhost:$aliasName';
quit;
EOF
fi

View File

@ -0,0 +1,60 @@
#!/bin/sh
# chkconfig: 345 20 80
# description: Start/Stop firebird database server
#
# This file belongs in /etc/init.d where it will be run
# on system startup and shutdown to start the background
# Firebird/interbase database server daemon
FIREBIRD=@prefix@
ISC_USER=SYSDBA
ISC_PASSWORD=masterkey
FBRunUser=firebird
# WARNING: in a real-world installation, you should not put the
# SYSDBA password in a publicly-readable file.
# Eventually this file should not need to contain any passwords.
# as root user alone should be sufficient privledge to stop/start
# the server.
export FIREBIRD
export ISC_USER
export ISC_PASSWORD
# Check the file is there and is executable.
[ -x $FIREBIRD/bin/fbmgr ] || exit 0
# See how we were called.
case "$1" in
start)
echo -n "Starting Firebird server: "
echo '$FIREBIRD/bin/fbmgr -start -forever' | su $FBRunUser
RETVAL=$?
;;
stop)
echo -n "Stopping Firebird server: "
$FIREBIRD/bin/fbmgr -shut
RETVAL=$?
# [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/identd
;;
status)
RETVAL=0
;;
restart|reload)
$0 stop
$0 start
RETVAL=$?
;;
*)
echo "Usage: firebird {start|stop|status|restart|reload}"
exit 1
esac
exit $RETVAL

View File

@ -0,0 +1,91 @@
#!/bin/sh
RunUser=firebird
export RunUser
RunGroup=firebird
export RunGroup
PidDir=/var/run/firebird
export PidDir
#------------------------------------------------------------------------
# Add new user and group
TryAddGroup() {
AdditionalParameter=$1
testStr=`grep firebird /etc/group`
if [ -z "$testStr" ]
then
groupadd $AdditionalParameter firebird
fi
}
TryAddUser() {
AdditionalParameter=$1
testStr=`grep firebird /etc/passwd`
if [ -z "$testStr" ]
then
useradd $AdditionalParameter -d $FBRootDir -s /bin/false \
-c "Firebird Database Owner" -g firebird firebird
fi
}
addFirebirdUser() {
TryAddGroup "-g 84 -r" >/dev/null 2>&1
TryAddGroup "-g 84" >/dev/null 2>&1
TryAddGroup "-r" >/dev/null 2>&1
TryAddGroup " "
TryAddUser "-u 84 -r -M" >/dev/null 2>&1
TryAddUser "-u 84 -M" >/dev/null 2>&1
TryAddUser "-r -M" >/dev/null 2>&1
TryAddUser "-M"
TryAddUser "-u 84 -r" >/dev/null 2>&1
TryAddUser "-u 84" >/dev/null 2>&1
TryAddUser "-r" >/dev/null 2>&1
TryAddUser " "
}
#------------------------------------------------------------------------
# print location of init script
getInitScriptLocation() {
if [ -f /etc/rc.d/init.d/firebird ]
then
echo -n /etc/rc.d/init.d/firebird
elif [ -f /etc/rc.d/rc.firebird ]
then
echo -n /etc/rc.d/rc.firebird
elif [ -f /etc/init.d/firebird ]
then
echo -n /etc/init.d/firebird
fi
}
#------------------------------------------------------------------------
# stop super server if it is running
stopSuperServerIfRunning() {
checkString=`ps -eaf | egrep "\b(fbserver|fbguard)\b" |grep -v grep`
if [ ! -z "$checkString" ]
then
init_d=`getInitScriptLocation`
if [ -x "$init_d" ]
then
$init_d stop
fi
fi
}

View File

@ -0,0 +1,4 @@
#
# Start the Firebird RDBMS ?
#
START_FIREBIRD="yes"

View File

@ -0,0 +1,208 @@
#!/bin/sh
# This library is part of the FirebirdSQL project
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
# You may obtain a copy of the Licence at
# http://www.gnu.org/licences/lgpl.html
#
# As a special exception this file can also be included in modules
# with other source code as long as that source code has been
# released under an Open Source Initiative certificed licence.
# More information about OSI certification can be found at:
# http://www.opensource.org
#
# This module 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
# GNU Lesser General Public Licence for more details.
#
# This module was created by members of the firebird development
# team. All individual contributions remain the Copyright (C) of
# those individuals and all rights are reserved. Contributors to
# this file are either listed below or can be obtained from a CVS
# history command.
#
# Created by: Mark O'Donohue <mark.odonohue@ludwig.edu.au>
#
# Contributor(s):
#
#
# $Id: makeinstallImage.sh.in,v 1.2 2008-01-07 12:26:13 paulbeach Exp $
#
# Script to copy install files from the build/transport area
# This script builds an image of the installed system into
# the gen/buildroot directory.
# Making an assumption that this program is being run in the gen directory
BuildRootDir=..
BuiltFBDir=./firebird # Where the just build fb exists.
TargetDir=buildroot # Where we want to build the install image
RealRootDir=/usr/local/firebird # Where it will be installed on new machine
FBRootDir=${RealRootDir#/} # strip off leading /
DestDir=$TargetDir/$FBRootDir
#------------------------------------------------------------------------
# copyIfExists
# Copy file if it exists
#
copyIfExists() {
OldFile=$1
NewFile=$2
if [ -f $OldFile ]
then
cp $OldFile $NewFile
fi
}
#------------------------------------------------------------------------
# copyFiles
# This function copies all the files for a classic distribution into a
# directory heirachy mirroring the installation.
copyFiles() {
# The guts of the tranfer of files and other directories
if [ -d $TargetDir ]
then
rm -fr $TargetDir
fi
mkdir -p $DestDir
mkdir $DestDir/bin
mkdir $DestDir/examples
mkdir $DestDir/help
mkdir $DestDir/include
mkdir $DestDir/intl
mkdir $DestDir/lib
mkdir $DestDir/doc
mkdir $DestDir/doc/sql.extensions
mkdir $DestDir/UDF
mkdir $DestDir/misc
mkdir -p $TargetDir@libdir@
mkdir -p $TargetDir/usr/include
cp -f $BuiltFBDir/bin/fbserver $DestDir/bin/fbserver
cp -f $BuiltFBDir/bin/fbguard $DestDir/bin/fbguard
cp -f $BuiltFBDir/bin/fbmgr.bin $DestDir/bin/fbmgr.bin
cp $BuiltFBDir/bin/gbak $DestDir/bin/gbak
cp $BuiltFBDir/bin/gdef $DestDir/bin/gdef
copyIfExists $BuiltFBDir/bin/fb_lock_print $DestDir/bin/fb_lock_print
copyIfExists $BuiltFBDir/bin/gds_pipe $DestDir/bin/gds_pipe
cp $BuiltFBDir/bin/gfix $DestDir/bin/gfix
cp $BuiltFBDir/bin/gpre $DestDir/bin/gpre
cp $BuiltFBDir/bin/gsec $DestDir/bin/gsec
copyIfExists $BuiltFBDir/bin/gsplit $DestDir/bin/gsplit
cp $BuiltFBDir/bin/gstat $DestDir/bin/gstat
copyIfExists $BuiltFBDir/bin/security.gbak $DestDir/bin/security.gbak
cp $BuiltFBDir/bin/isql $DestDir/bin/isql
cp $BuiltFBDir/bin/qli $DestDir/bin/qli
cp $BuildRootDir/gen/install/bin/SSchangeRunUser.sh $DestDir/bin
cp $BuildRootDir/gen/install/bin/SSrestoreRootRunUser.sh $DestDir/bin
cp $BuildRootDir/gen/install/bin/changedbaPassword.sh $DestDir/bin
cp $BuildRootDir/gen/install/bin/changegdslibrarycompatibleLink.sh $DestDir/bin
cp $BuildRootDir/gen/install/bin/createaliasDB.sh $DestDir/bin
cp $BuildRootDir/gen/install/bin/fb_config $DestDir/bin
cp $BuildRootDir/gen/install/misc/firebird.init.d.hpux $DestDir/misc
cp $BuildRootDir/gen/install/misc/rc.config.firebird.hpux $DestDir/misc
# Copy examples only if we have them
exampleFiles=`find $BuiltFBDir/examples/v5 -type f -print`
if [ -z "$exampleFiles" ]
then
echo "Example files have not been built!"
else
for i in $exampleFiles
do
cp $i $DestDir/examples
done
fi
copyIfExists $BuiltFBDir/help/help.gbak $DestDir/help
cp $BuiltFBDir/help/help.fdb $DestDir/help
#cp -r $BuildSrcDir/doc $DestDir
#cp -r $BuiltFBDir/doc $DestDir
cp $BuiltFBDir/firebird.msg $DestDir/firebird.msg
cp $BuiltFBDir/security.fdb $DestDir/security.fdb
cp $BuiltFBDir/include/*.h $DestDir/include
cp -f $BuiltFBDir/lib/libfbclient.sl* $DestDir/lib
cp -f $BuiltFBDir/lib/libib_util.sl $DestDir/lib/libib_util.sl
cp $BuiltFBDir/intl/libfbintl.sl $DestDir/intl/fbintl
cp $BuiltFBDir/UDF/ib_udf.sl $DestDir/UDF/
cp $BuiltFBDir/UDF/fbudf.sl $DestDir/UDF/
# Copy the sql-declarations into the UDF-directory
cp $BuildRootDir/src/extlib/ib_udf.sql $DestDir/UDF/
cp $BuildRootDir/src/extlib/fbudf/fbudf.sql $DestDir/UDF/
# Note that this copies files from outside the build tree.
cp $BuildRootDir/doc/*.pdf $DestDir/doc
cp $BuildRootDir/doc/README.* $DestDir/doc
cp $BuildRootDir/doc/sql.extensions/README* $DestDir/doc/sql.extensions
cp $BuildRootDir/doc/WhatsNew $DestDir/WhatsNew
cp $BuildRootDir/doc/README.user $DestDir/README
# Miscellaneous config and stratup files
cp $BuildRootDir/gen/install/misc/firebird.conf $DestDir/firebird.conf
cp $BuildRootDir/gen/install/misc/aliases.conf $DestDir/
# Create links from /usr/lib to install area.
origDir=`pwd`
cd $DestDir/lib
for i in libfb*.sl*; do ln -s /$FBRootDir/lib/$i $origDir/$TargetDir/usr/lib/$i; done
cd $origDir
ln -s ../../$FBRootDir/lib/libib_util.sl $TargetDir/usr/lib/libib_util.sl
# link include files to /usr/include
for i in gds.h iberror.h ibase.h ib_util.h
do
ln -s ../../$FBRootDir/include/$i $TargetDir/usr/include/$i
done
# (cd $DestDir; touch firebird.log;)
# chmod u=rw,go= firebird.log)
# (cd $DestDir; chmod uga+rw examples/*.gdb)
# chown -R root:root $TargetDir
}
#=== MAIN ====================================================================
copyFiles

View File

@ -0,0 +1,572 @@
#!/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
Silent=$4
if [ -z "$oldLine" ]
then
echo "$newLine" >> $FileName
elif [ "$oldLine" != "$newLine" ]
then
if [ "$Silent" != "Silent" ]
then
echo ""
echo "--- Warning ----------------------------------------------"
echo ""
echo " In file $FileName found line: "
echo " $oldLine"
echo " Which differs from the expected line:"
echo " $newLine"
echo ""
fi
# 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 $FileName."
fi
}
#------------------------------------------------------------------------
# Add new user and group
TryAddGroup() {
testStr=`grep firebird /etc/group`
if [ -z "$testStr" ]; then
groupadd firebird
fi
}
TryAddUser() {
testStr=`grep firebird /etc/passwd`
if [ -z "$testStr" ]; then
useradd -d $FBRootDir -s /bin/false \
-c "Firebird Database Administrator" -g firebird firebird
fi
}
addFirebirdUser() {
TryAddGroup "-g 84 -r" >/dev/null 2>&1
TryAddGroup "-g 84" >/dev/null 2>&1
TryAddGroup "-r" >/dev/null 2>&1
TryAddGroup " "
TryAddUser "-u 84 -r" >/dev/null 2>&1
TryAddUser "-u 84" >/dev/null 2>&1
TryAddUser "-r" >/dev/null 2>&1
TryAddUser " "
}
#------------------------------------------------------------------------
# changeInitPassword
changeInitPassword() {
NewPasswd=$1
InitFile=/sbin/init.d/firebird
if [ -f $InitFile ]
then
echo ""
echo Running ex to modify /sbin/init.d/firebird
# to be sure that `ex' can write to file
chmod u=rwx,g=rx,o= $InitFile
ex -s $InitFile <<EOF
/ISC_PASSWORD/s/ISC_PASSWORD=.*/ISC_PASSWORD=$NewPasswd/g
w
q
EOF
chmod u=rwx,g=rx,o= $InitFile
fi
}
#------------------------------------------------------------------------
# Write new password to the @prefix@/SYSDBA.password file
writeNewPassword() {
NewPasswd=$1
echo "# Firebird generated password for user SYSDBA is: " > $DBAPasswordFile
echo "" >> $DBAPasswordFile
echo "ISC_USER=sysdba" >> $DBAPasswordFile
echo "ISC_PASSWD=$NewPasswd" >> $DBAPasswordFile
echo "" >> $DBAPasswordFile
if [ $NewPasswd = "masterkey" ]
then
echo "# for install on `hostname` at time `date`" >> $DBAPasswordFile
echo "# You should change this password at the earliest oportunity" >> $DBAPasswordFile
else
echo "# generated on `hostname` at time `date`" >> $DBAPasswordFile
fi
echo "" >> $DBAPasswordFile
echo "# Your password can be changed to a more suitable one using the" >> $DBAPasswordFile
echo "# @prefix@/bin/changeDBAPassword.sh script" >> $DBAPasswordFile
# Additional instructions for super server
echo "" >> $DBAPasswordFile
echo "# For superserver you will also want to check the password in the" >> $DBAPasswordFile
echo "# daemon init routine in the file /sbin/init.d/firebird" >> $DBAPasswordFile
echo "" >> $DBAPasswordFile
chmod u=r $DBAPasswordFile
# Only if we have changed the password from the default do we need
# to update the entry in the database
if [ $NewPasswd != "masterkey" ]
then
$FBBin/gsec -user sysdba -password masterkey <<EOF
modify sysdba -pw $NewPasswd
EOF
fi
}
#------------------------------------------------------------------------
# Generate new sysdba password - this routine is used only in the
# rpm file not in the install acript.
generateNewDBAPassword() {
DBAPasswordFile=$FBRootDir/SYSDBA.password
# openssl generates random data.
if [ -f /usr/bin/openssl ]
then
# We generate 20 random chars, strip any '/''s and get the first 8
NewPasswd=`openssl rand -base64 20 | tr -d '/' | cut -c1-8`
fi
# mkpasswd is a bit of a hassle, but check to see if it's there
if [ -z "$NewPasswd" ]
then
if [ -f /usr/bin/mkpasswd ]
then
NewPasswd=`/usr/bin/mkpasswd -l 8`
fi
fi
# So we failed to generate a new password, so keep the original
# installed one.
if [ -z "$NewPasswd" ]
then
NewPasswd="masterkey"
fi
writeNewPassword $NewPasswd
changeInitPassword "$NewPasswd"
}
#------------------------------------------------------------------------
# Change sysdba password - this routine is interactive and is only
# used in the install shell script not the rpm one.
askUserForNewDBAPassword() {
NewPasswd=""
echo ""
while [ -z "$NewPasswd" ]
do
AskQuestion "Please enter new password for SYSDBA user: "
NewPasswd=$Answer
if [ ! -z "$NewPasswd" ]
then
echo ""
writeNewPassword $NewPasswd
changeInitPassword "$NewPasswd"
fi
done
}
#------------------------------------------------------------------------
# Change sysdba password - this routine is interactive and is only
# used in the install shell script not the rpm one.
# On some systems the mkpasswd program doesn't appear and on others
# there is another mkpasswd which does a different operation. So if
# the specific one isn't available then keep the original password.
changeDBAPassword() {
if [ -z "$InteractiveInstall" ]
then
generateNewDBAPassword
else
askUserForNewDBAPassword
fi
}
#------------------------------------------------------------------------
# installInitdScript
# Everbody stores this one in a seperate location, so there is a bit of
# running around to actually get it for each packager.
# Update rcX.d with Firebird initd entries
# initd script for SuSE >= 7.2 is a part of RPM package
installInitdScript() {
# HPUX...
if [ -d /sbin/init.d ]
then
srcScript=firebird.init.d.hpux
initScript=/sbin/init.d/firebird
fi
# Install the firebird init.d script
cp $FBRootDir/misc/$srcScript $initScript
chown root:root $initScript
chmod u=rx,g=rx,o= $initScript # contains password hence no world read.
}
#------------------------------------------------------------------------
# startInetService
# Now that we've installed it start up the service.
startInetService() {
initScript=/sbin/init.d/firebird
if [ ! -f $initScript ]
then
initScript=/sbin/init.d/firebird
fi
if [ -f $initScript ]
then
$initScript start
checkString=`ps -ef | grep fbserver |grep -v grep`
if [ -z "$checkString" ]
then
# server didn't start - possible reason bad shell /bin/false
echo
echo Fixing firebird\'s shell to /bin/sh
echo
usermod -s /bin/sh firebird
$initScript start
fi
fi
}
#------------------------------------------------------------------------
# UpdateHostsDotEquivFile
# The /etc/hosts.equiv file is needed to allow local access for super server
# from processes on the machine to port 3050 on the local machine.
# The two host names that are needed there are
# localhost.localdomain and whatever hostname returns.
updateHostsDotFile() {
hostEquivFile=$1
if [ ! -f $hostEquivFile ]
then
touch $hostEquivFile
chown root:root $hostEquivFile
chmod u=rw,g=r,o=r $hostEquivFile
fi
newLine="localhost"
oldLine=`grep "^$newLine\$" $hostEquivFile`
replaceLineInFile "$hostEquivFile" "$newLine" "$oldLine"
newLine="localhost.localdomain"
oldLine=`grep "^$newLine\$" $hostEquivFile`
replaceLineInFile "$hostEquivFile" "$newLine" "$oldLine"
newLine="`hostname`"
oldLine=`grep "^$newLine\$" $hostEquivFile`
replaceLineInFile "$hostEquivFile" "$newLine" "$oldLine"
}
#------------------------------------------------------------------------
# buildUninstallFile
# This will work only for the .tar install and it builds an
# uninstall shell script.
buildUninstallFile() {
cd "$origDir"
if [ ! -f manifest.txt ] # Only do this if we are a .tar install
then
return
fi
cp manifest.txt $FBRootDir/misc
cp -r scripts $FBRootDir/misc/
cp scripts/tarmainUninstall.sh $FBRootDir/bin/uninstall.sh
}
#------------------------------------------------------------------------
# createLinksForBackCompatibility
# Create links for back compatibility to InterBase and Firebird1.0
# linked systems.
createLinksForBackCompatibility() {
# These two links are required for compatibility with existing ib programs
# If the program had been linked with libgds.so then this link is required
# to ensure it loads the fb equivalent. Eventually these should be
# optional and in a seperate rpm install. MOD 7-Nov-2002.
# Althhough classic has two options for libgds.so super server has only
# one:
# 1) The multithreaded client only libfbclient.so
# MOD 23-Dec-2003
newLibrary=$FBRootDir/lib/libfbclient.so
#newLibrary=$FBRootDir/lib/libfbembed.so
# Remove if only a link
if [ -L @libdir@/libgds.so ]
then
rm -f @libdir@/libgds.so
fi
if [ ! -e @libdir@/libgds.so ]
then
ln -s $newLibrary @libdir@/libgds.so
fi
# Remove if only a link
if [ -L @libdir@/libgds.so.0 ]
then
rm -f @libdir@/libgds.so.0
fi
if [ ! -e @libdir@/libgds.so.0 ]
then
ln -s $newLibrary @libdir@/libgds.so.0
fi
}
#------------------------------------------------------------------------
# For security reasons most files in firebird installation are
# root-owned and world-readable(executable) only (including firebird).
# For some files RunUser (firebird) must have write access -
# lock and log are such.
MakeFileFirebirdWritable() {
FileName=$1
chown firebird:firebird $FileName
chmod 0644 $FileName
}
#------------------------------------------------------------------------
# remove line from config file if it exists in it.
removeLineFromFile() {
FileName=$1
oldLine=$2
if [ -f $FileName ]
then
if [ ! -z "$oldLine" ]
then
cat $FileName | grep -v "$oldLine" > ${FileName}.tmp
mv ${FileName}.tmp $FileName
echo "Updated."
fi
fi
}
#= Main Post ===============================================================
# Make sure the links are in place
if [ ! -L @prefix@ -a ! -d @prefix@ ]
then
# Main link and...
ln -s $RPM_INSTALL_PREFIX/interbase @prefix@
fi
origDir=`pwd`
FBRootDir=@prefix@
FBBin=$FBRootDir/bin
# RunUser=root
RunUser=firebird
DBAPasswordFile=$FBRootDir/SYSDBA.password
export FBRootDir
export FBBin
export RunUser
export DBAPasswordFile
# Update /etc/services
# The \n is needed, some /etc/services files are missing a trailing
# line feed - MOD 12-Dec-2003
FileName=/etc/services
newLine="gds_db 3050/tcp # Firebird SQL Database Remote Protocol"
oldLine=`grep "^gds_db" $FileName`
if [ -z "$oldLine" ]
then
echo "" >> $FileName
echo $newLine >> $FileName
echo "" >> $FileName
# replaceLineInFile "$FileName" "$newLine" "$oldLine"
fi
# Add entries to host.equiv & hosts.allow files
updateHostsDotFile /etc/hosts.equiv
# updateHostsDotFile /etc/hosts.allow
# remove any gds_db line in the /etc/inetd.conf
FileName=/etc/inetd.conf
if [ -f $FileName ]
then
oldLine=`grep "^gds_db" $FileName`
removeLineFromFile "$FileName" "$oldLine"
fi
# Get inetd to reread new init files.
if [ -f /var/run/inetd.pid ]
then
kill -HUP `cat /var/run/inetd.pid`
fi
# Update ownership of files
if [ $RunUser = firebird ]
then
# Prepare firebird user
addFirebirdUser
fi
# For security reasons initially force all root:root non-writable
chown -R root:root $FBRootDir
chmod -R u-w,g-w,a-w $FBRootDir
# Prepare bin
cd $FBBin
# Create the fbmgr shell script.
cat > fbmgr <<EOF
#!/bin/sh
FIREBIRD=$FBRootDir
export FIREBIRD
exec \$FIREBIRD/bin/fbmgr.bin \$@
EOF
# Everyone may execute clients
chmod 0555 *
# Shell scripts changing security attributes are for root only
chmod 0500 *.sh
# These two should only be executed by firebird user.
#fbservices=fbguard fbserver
#chown firebird:firebird $fbserveces
#chmod 0544 $fbservices
# Lock files
cd $FBRootDir
for i in isc_init1 isc_lock1 isc_event1 isc_guard1
do
FileName=$i.`hostname`
touch $FileName
MakeFileFirebirdWritable $FileName
done
touch firebird.log
MakeFileFirebirdWritable firebird.log
# Security database
# Nobody besides firebird permitted to even read this file
chown firebird:firebird security.fdb
chmod 0600 security.fdb
# make examples writable by firebird
for i in examples/*.fdb
do
MakeFileFirebirdWritable $i
done
# Set up Firebird for run with init.d
installInitdScript
createLinksForBackCompatibility
buildUninstallFile
# start the db server so we can change the password
startInetService
# Change sysdba password
cd $FBRootDir
changeDBAPassword

View File

@ -0,0 +1,72 @@
#! /bin/sh
#------------------------------------------------------------------------
# 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
}
#------------------------------------------------------------------------
# removeLinksForBackCompatibility
# Remove links for back compatibility to InterBase and Firebird1.0
# linked systems.
removeLinksForBackCompatibility() {
if [ -L @libdir@/libgds.so ]
then
rm -f @libdir@/libgds.so
fi
if [ -L @libdir@/libgds.so.0 ]
then
rm -f @libdir@/libgds.so.0
fi
}
#= Main PostUn ===============================================================
if [ "$1"=0 ]
then
removeLinksForBackCompatibility
# If we have right systems remove the service autoconfig stuff.
if [ -x sbin/insserv ]
then
sbin/insserv /etc/init.d/
fi
if [ -x sbin/chkconfig ]
then
/sbin/chkconfig --del firebird
fi
# Remove /usr/sbin/rcfirebird symlink
if [ -e /usr/sbin/rcfirebird ]
then
rm -f /usr/sbin/rcfirebird
fi
# Remove initd script
if [ -e /sbin/init.d/firebird ]
then
rm -f /sbin/init.d/firebird
fi
fi

View File

@ -0,0 +1,217 @@
#!/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 -ef | egrep "(fbserver|fbguard)" |grep -v grep`
if [ ! -z "$checkString" ]
then
if [ -f /sbin/init.d/firebird ]
then
/sbin/init.d/firebird stop
fi
fi
}
#------------------------------------------------------------------------
# stop server if it is running
checkIfServerRunning() {
stopServerIfRunning
checkString=`ps -ef | egrep "(fbserver|fbguard)" |grep -v grep`
if [ ! -z "$checkString" ]
then
echo "An instance of the Firebird SuperServer seems to be running."
echo "(the fbserver/fbguard process was detected running on your system)"
echo "Please quit all Firebird applications and then proceed"
exit -1
fi
checkString=`ps -ef | egrep "(fb_inet_server)" |grep -v grep`
if [ ! -z "$checkString" ]
then
echo "An instance of the Firebird Classic 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 | egrep "fb_lock_mgr" | 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=${FBRootDir#/} # strip off leading /
if [ -e "$DestFile" ]
then
echo ""
echo ""
echo ""
echo "--- Warning ----------------------------------------------"
echo " The installation target directory: $FBRootDir"
echo " Already contains a prior installation of Firebird."
echo " This and files found in /usr/include and @libdir@ 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 ibase.h ib_util.h
do
DestFile=usr/include/$i
if [ -e $DestFile ]
then
archiveFileList="$archiveFileList $DestFile"
fi
done
for i in libib_util.so libfbclient.so.1.5.0 libfbclient.so.1 libfbclient.so
do
DestFile=usr/lib/$i
if [ -e $DestFile ]
then
archiveFileList="$archiveFileList $DestFile"
fi
done
if [ ! -z "$archiveFileList" ]
then
displayMessage "Archiving..."
runAndCheckExit "tar -cvf $ArchiveMainFile $archiveFileList"
displayMessage "Done."
displayMessage "Deleting..."
for i in $archiveFileList
do
rm -rf $i
done
displayMessage "Done."
fi
cd $oldPWD
}
#== Main Pre =================================================================
FBRootDir=@prefix@
FBBin=$FBRootDir/bin
ArchiveDateTag=`date +"%Y%m%d_%H%M"`
ArchiveMainFile="${FBRootDir}_${ArchiveDateTag}.tar"
# 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

View File

@ -0,0 +1,74 @@
#! /bin/sh
#------------------------------------------------------------------------
# stop server if it is running
stopServerIfRunning() {
checkString=`ps -ef | egrep "(fbserver|fbguard)" |grep -v grep`
if [ ! -z "$checkString" ]
then
InitFile=/sbin/init.d/firebird
if [ -x $InitFile ]
then
$InitFile stop
fi
fi
checkString=`ps -ef | egrep "(fbserver|fbguard)" |grep -v grep`
if [ ! -z "$checkString" ]
then
# careful shutdown of server failed :)
# this may be for very many reasons, therefore kill it
killall -9 fbguard >/dev/null 2>&1
killall -9 fbserver >/dev/null 2>&1
fi
}
#= Main PreUn ================================================================
FBRootDir=@prefix@
FBBin=$FBRootDir/bin
SecurityDatabase=security.fdb
stopServerIfRunning
cd $FBRootDir
if [ -f $SecurityDatabase ]
then
cp $SecurityDatabase /tmp
echo "Saved a copy of SecurityDatabase ($SecurityDatabase) in /tmp"
chown root:root /tmp/$SecurityDatabase
chmod 0600 /tmp/$SecurityDatabase
fi
for i in isc_init1* isc_event1* isc_lock1* isc_guard* firebird.log SYSDBA.password
do
if [ -f $i ]
then
rm -f $i
fi
done
rm -f $FBBin/fbmgr
# testStr=`grep firebird /etc/passwd`
# if [ ! -z "$testStr" ]
# then
# userdel firebird
# fi
#
# testStr=`grep firebird /etc/group`
# if [ ! -z "$testStr" ]
# then
# groupdel firebird
# fi

View File

@ -0,0 +1,48 @@
#!/bin/sh
#
# This library is part of the FirebirdSQL project
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
# You may obtain a copy of the Licence at
# http://www.gnu.org/licences/lgpl.html
#
# As a special exception this file can also be included in modules
# with other source code as long as that source code has been
# released under an Open Source Initiative certificed licence.
# More information about OSI certification can be found at:
# http://www.opensource.org
#
# This module 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
# GNU Lesser General Public Licence for more details.
#
# This module was created by members of the firebird development
# team. All individual contributions remain the Copyright (C) of
# those individuals and all rights are reserved. Contributors to
# this file are either listed below or can be obtained from a CVS
# history command.
#
# Created by: Mark O'Donohue <mark.odonohue@ludwig.edu.au>
#
# Contributor(s):
#
#
# $Id: tarInstall.sh.in,v 1.2 2008-01-07 12:26:20 paulbeach Exp $
#
# THe way this works is that the buildroot file is stored relative to the root
# directory and a tar -xvf at root directory will restore all the files in
# the position that we want them to be
OrigDir=`pwd`
cd /
tar -xvf "$OrigDir/buildroot.tar"
cd "$OrigDir"

View File

@ -0,0 +1,102 @@
#! /bin/sh
#
# This library is part of the FirebirdSQL project
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
# You may obtain a copy of the Licence at
# http://www.gnu.org/licences/lgpl.html
#
# As a special exception this file can also be included in modules
# with other source code as long as that source code has been
# released under an Open Source Initiative certificed licence.
# More information about OSI certification can be found at:
# http://www.opensource.org
#
# This module 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
# GNU Lesser General Public Licence for more details.
#
# This module was created by members of the firebird development
# team. All individual contributions remain the Copyright (C) of
# those individuals and all rights are reserved. Contributors to
# this file are either listed below or can be obtained from a CVS
# history command.
#
# Created by: Mark O'Donohue <mark.odonohue@ludwig.edu.au>
#
# Contributor(s):
#
#
# $Id: tarUninstall.sh.in,v 1.2 2008-01-07 12:26:22 paulbeach Exp $
#
#------------------------------------------------------------------------
# removeInstalledFiles
#
removeInstalledFiles() {
manifestFile=$FBRootDir/misc/manifest.txt
if [ ! -f $manifestFile ]
then
return
fi
origDir=`pwd`
cd /
for i in `cat $manifestFile`
do
if [ -f $i -o -L $i ]
then
rm -f $i
#echo $i
fi
done
cd "$origDir"
}
#------------------------------------------------------------------------
# removeUninstallFiles
# Under the install directory remove all the empty directories
# If some files remain then
removeUninstallFiles() {
# remove the uninstall scripts files.
#echo $FBRootDir/misc/scripts
rm -rf $FBRootDir/misc/scripts
rm -f $FBRootDir/misc/manifest.txt
rm -f $FBRootDir/bin/uninstall.sh
rm -f $FBRootDir/lib/libfbembed.sl
rm -f $FBRootDir/lib/libfbclient.sl
}
#------------------------------------------------------------------------
# removeEmptyDirs
# Under the install directory remove all the empty directories
# If some files remain then
# This routing loops, since deleting a directory possibly makes
# the parent empty as well
removeEmptyDirs() {
rm -fr $FBRootDir
}
FBRootDir=/usr/local/firebird
FBBin=$FBRootDir/bin
removeInstalledFiles # Remove installed files
removeUninstallFiles # Remove the 'uninstall' utility files
removeEmptyDirs # Remove empty directories

View File

@ -0,0 +1,157 @@
#!/bin/sh
#
# This library is part of the FirebirdSQL project
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
# You may obtain a copy of the Licence at
# http://www.gnu.org/licences/lgpl.html
#
# As a special exception this file can also be included in modules
# with other source code as long as that source code has been
# released under an Open Source Initiative certificed licence.
# More information about OSI certification can be found at:
# http://www.opensource.org
#
# This module 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
# GNU Lesser General Public Licence for more details.
#
# This module was created by members of the firebird development
# team. All individual contributions remain the Copyright (C) of
# those individuals and all rights are reserved. Contributors to
# this file are either listed below or can be obtained from a CVS
# history command.
#
# Created by: Mark O'Donohue <mark.odonohue@ludwig.edu.au>
#
# Contributor(s):
#
#
# $Id: tarmainInstall.sh.in,v 1.2 2008-01-07 12:26:23 paulbeach Exp $
#
# Install script for FirebirdSQL database engine
# http://www.firebirdsql.org
# This is the new file !!!
#------------------------------------------------------------------------
# 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
BuildVersion=1.5.3.4870
PackageVersion=0
CpuType=hppa2.0w
Version="$BuildVersion-$PackageVersion.$CpuType"
cat <<EOF
Firebird SuperServer $Version Installation
EOF
AskQuestion "Press Enter to start installation or ^C to abort"
# Here we are installing from a install tar file
if [ -e scripts ]
then
echo "Extracting install data"
runAndCheckExit "./scripts/preInstall.sh"
runAndCheckExit "./scripts/tarInstall.sh"
runAndCheckExit "./scripts/postInstall.sh"
fi
echo "Install completed"

View File

@ -0,0 +1,168 @@
#!/bin/sh
#
# This library is part of the FirebirdSQL project
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
# You may obtain a copy of the Licence at
# http://www.gnu.org/licences/lgpl.html
#
# As a special exception this file can also be included in modules
# with other source code as long as that source code has been
# released under an Open Source Initiative certificed licence.
# More information about OSI certification can be found at:
# http://www.opensource.org
#
# This module 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
# GNU Lesser General Public Licence for more details.
#
# This module was created by members of the firebird development
# team. All individual contributions remain the Copyright (C) of
# those individuals and all rights are reserved. Contributors to
# this file are either listed below or can be obtained from a CVS
# history command.
#
# Created by: Mark O'Donohue <mark.odonohue@ludwig.edu.au>
#
# Contributor(s):
#
#
# $Id: tarmainUninstall.sh.in,v 1.2 2008-01-07 12:26:23 paulbeach Exp $
#
# Install script for FirebirdSQL database engine
# http://www.firebirdsql.org
# This is the new file !!!
#------------------------------------------------------------------------
# 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 "Uninstall 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 run uninstall"
echo ""
exit
fi
}
#== Main Program ==========================================================
InteractiveInstall=1
export InteractiveInstall
checkInstallUser
BuildVersion=@FIREBIRD_VERSION@.@FB_BUILD_NUM@
PackageVersion=@FIREBIRD_PACKAGE_VERSION@
CpuType=@CPU_TYPE@
FBRootDir=@prefix@
Version="$BuildVersion-$PackageVersion.$CpuType"
cat <<EOF
Firebird SuperServer $Version Uninstall program
Are you sure you want to proceed?
EOF
AskQuestion "Press Enter to start uninstall or ^C to abort"
# Here we are uninstalling from a install tar file
scriptsDir=$FBRootDir/misc/scripts
if [ -e $scriptsDir ]
then
echo "Extracting install data"
runAndCheckExit "$scriptsDir/preUninstall.sh"
runAndCheckExit "$scriptsDir/postUninstall.sh"
# This one is done last since it deletes the script files
# as well.
runAndCheckExit "$scriptsDir/tarUninstall.sh"
fi
echo "Uninstall completed"

View File

@ -22,7 +22,7 @@ export ArchiveMainFile
# Create temporary file. In case mktemp failed, do something...
MakeTemp() {
TmpFile=`mktemp -q /tmp/firebird_install.XXXXXX`
TmpFile=`mktemp /tmp/firebird_install.XXXXXX`
if [ $? -ne 0 ]
then
TmpFile=/tmp/firebird_install
@ -114,7 +114,7 @@ checkInstallUser() {
# Works for both inetd and xinetd
resetInetdServer() {
pid=`ps -efww | grep inetd | grep -v grep | awk '{print $2}'`
pid=`ps -eaf | grep inetd | grep -v grep | awk '{print $2}'`
if [ "$pid" ]
then
kill -HUP $pid
@ -173,7 +173,7 @@ checkIfServerRunning() {
# Check is server is being actively used.
checkString=`ps -efww| egrep "\b(fbserver|fbguard)\b" |grep -v grep`
checkString=`ps -eaf | egrep "\b(fbserver|fbguard)\b" |grep -v grep`
if [ ! -z "$checkString" ]
then
@ -182,7 +182,7 @@ checkIfServerRunning() {
exit 1
fi
checkString=`ps -efww| egrep "\b(fb_inet_server|gds_pipe)\b" |grep -v grep`
checkString=`ps -eaf | egrep "\b(fb_inet_server|gds_pipe)\b" |grep -v grep`
if [ ! -z "$checkString" ]
then
@ -194,7 +194,7 @@ checkIfServerRunning() {
# The following check for running interbase or firebird 1.0 servers.
checkString=`ps -efww| egrep "\b(ibserver|ibguard)\b" |grep -v grep`
checkString=`ps -eaf | egrep "\b(ibserver|ibguard)\b" |grep -v grep`
if [ ! -z "$checkString" ]
then
@ -204,7 +204,7 @@ checkIfServerRunning() {
exit 1
fi
checkString=`ps -efww| egrep "\b(gds_inet_server|gds_pipe)\b" |grep -v grep`
checkString=`ps -eaf | egrep "\b(gds_inet_server|gds_pipe)\b" |grep -v grep`
if [ ! -z "$checkString" ]
then
@ -218,7 +218,7 @@ checkIfServerRunning() {
# Stop lock manager if it is the only thing running.
for i in `ps -efww | grep "fb_lock_mgr" | grep -v "grep" | awk '{print $2}' `
for i in `ps -eaf | grep "fb_lock_mgr" | grep -v "grep" | awk '{print $2}' `
do
kill $i
done
@ -654,7 +654,7 @@ archivePriorInstallSystemFiles() {
if [ ! -z "$archiveFileList" ]
then
displayMessage "Archiving..."
runAndCheckExit "tar -czf $ArchiveMainFile $archiveFileList"
runAndCheckExit "tar -cvf $ArchiveMainFile $archiveFileList"
displayMessage "Done."
displayMessage "Deleting..."

View File

@ -0,0 +1,31 @@
#
# Version script to hide private symbols from Firebird libraries
# GNU and Solaris linkers should understand it
#
# The contents of this file are subject to the Initial
# Developer's Public License Version 1.0 (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.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_idpl.
#
# Software distributed under the License is distributed AS IS,
# WITHOUT WARRANTY OF ANY KIND, either express or implied.
# See the License for the specific language governing rights
# and limitations under the License.
#
# The Original Code was created by Nickolay Samofatov
# for the Firebird Open Source RDBMS project.
#
# Copyright (c) 2004 Nickolay Samofatov <nickolay@broadviewsoftware.com>
# and all contributors signed below.
#
# All Rights Reserved.
# Contributor(s): ______________________________________.
#
#
# $Id: fbintl.hpux.vers,v 1.1 2008-01-07 12:25:27 paulbeach Exp $
#
+e LD_lookup_charset
+e LD_lookup_texttype

View File

@ -0,0 +1,309 @@
#
# Version script to hide private symbols from Firebird libraries
# GNU and Solaris linkers should understand it
#
#
# The contents of this file are subject to the Interbase Public
# License Version 1.0 (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.Inprise.com/IPL.html
#
# Software distributed under the License is distributed on an
# "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express
# or implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code was created by Inprise Corporation
# and its predecessors. Portions created by Inprise Corporation are
# Copyright (C) Inprise Corporation.
#
# Created from fbclient.def by Nickolay Samofatov
#
# All Rights Reserved.
# Contributor(s): ______________________________________.
#
# private entrypoint for REMOTE server
+e server_main
#-------------------
# PRIVATE INTERFACE
#-------------------
+e gds__alloc
+e gds__attach_database
+e gds__blob_info
+e gds__blob_size
+e gds__cancel_blob
+e gds__cancel_events
+e gds__close
+e gds__close_blob
+e gds__commit_retaining
+e gds__commit_transaction
+e gds__compile_request
+e gds__compile_request2
+e gds__create_blob
+e gds__create_blob2
+e gds__create_database
+e gds__database_cleanup
+e gds__database_info
+e gds__ddl
+e gds__declare
+e gds__decode
+e gds__decode_date
+e gds__describe
+e gds__describe_bind
+e gds__detach_database
+e gds__disable_subsystem
+e gds__dsql_finish
+e gds__edit
+e gds__enable_subsystem
+e gds__encode
+e gds__encode_date
+e gds__event_block
+e gds__event_counts
+e gds__event_wait
+e gds__execute
+e gds__execute_immediate
+e gds__fetch
+e gds__free
+e gds__ftof
+e gds__get_prefix
+e gds__get_segment
+e gds__get_slice
+e gds__interprete
+e gds__log
+e gds__log_status
+e gds__map_blobs
+e gds__msg_close
+e gds__msg_format
+e gds__msg_lookup
+e gds__msg_open
+e gds__msg_put
+e gds__open
+e gds__open_blob
+e gds__open_blob2
+e gds__parse_bpb
+e gds__prefix
+e gds__prefix_lock
+e gds__prefix_msg
+e gds__prepare
+e gds__prepare_transaction
+e gds__prepare_transaction2
+e gds__print_blr
+e gds__print_status
+e gds__put_error
+e gds__put_segment
+e gds__put_slice
+e gds__qtoq
+e gds__que_events
+e gds__receive
+e gds__reconnect_transaction
+e gds__register_cleanup
+e gds__release_request
+e gds__request_info
+e gds__rollback_transaction
+e gds__seek_blob
+e gds__send
+e gds__set_debug
+e gds__sqlcode
+e gds__start_and_send
+e gds__start_multiple
+e gds__start_request
+e gds__start_transaction
+e gds__temp_dir
+e gds__temp_file
+e gds__thread_enable
+e gds__thread_enter
+e gds__thread_exit
+e gds__thread_start
+e gds__to_sqlda
+e gds__transaction_cleanup
+e gds__transaction_info
+e gds__unregister_cleanup
+e gds__unwind_request
+e gds__validate_lib_path
+e gds__vax_integer
+e gds__version
+e gds__vtof
+e gds__vtov
+e gds__default_printer
+e gds__alloc_debug
+e gds_alloc_flag_unfreed
+e gds_alloc_report
+e perf_format
+e perf_get_info
+e perf_report
#----------------------------
# PUBLIC INTERFACE, i.e. API
#----------------------------
# Array functions
+e isc_array_gen_sdl
+e isc_array_get_slice
+e isc_array_lookup_bounds
+e isc_array_lookup_desc
+e isc_array_put_slice
+e isc_array_set_desc
+e isc_get_slice
+e isc_put_slice
# BLOB functions
+e isc_blob_default_desc
+e isc_blob_gen_bpb
+e isc_blob_info
+e isc_blob_lookup_desc
+e isc_blob_set_desc
+e isc_cancel_blob
+e isc_close_blob
+e isc_create_blob
+e isc_create_blob2
+e isc_get_segment
+e isc_open_blob
+e isc_open_blob2
+e isc_put_segment
# Database functions
+e isc_attach_database
+e isc_create_database
+e isc_database_info
+e isc_detach_database
+e isc_drop_database
+e isc_expand_dpb
+e isc_modify_dpb
+e isc_version
+e isc_get_client_major_version
+e isc_get_client_minor_version
+e isc_get_client_version
# Conversion functions
+e isc_decode_date
+e isc_decode_sql_date
+e isc_decode_sql_time
+e isc_decode_timestamp
+e isc_encode_date
+e isc_encode_sql_date
+e isc_encode_sql_time
+e isc_encode_timestamp
+e isc_portable_integer
+e isc_vax_integer
# DSQL functions
+e isc_dsql_allocate_statement
+e isc_dsql_alloc_statement2
+e isc_dsql_describe
+e isc_dsql_describe_bind
+e isc_dsql_execute
+e isc_dsql_execute2
+e isc_dsql_execute_m
+e isc_dsql_execute2_m
+e isc_dsql_execute_immediate
+e isc_dsql_exec_immed2
+e isc_dsql_execute_immediate_m
+e isc_dsql_exec_immed2_m
+e isc_dsql_exec_immed3_m
+e isc_dsql_fetch
+e isc_dsql_fetch_a
+e isc_dsql_fetch_m
+e isc_dsql_finish
+e isc_dsql_free_statement
+e isc_dsql_insert
+e isc_dsql_insert_m
+e isc_dsql_prepare
+e isc_dsql_prepare_m
+e isc_dsql_release
+e isc_dsql_set_cursor_name
+e isc_dsql_sql_info
# ESQL functions
+e isc_embed_dsql_close
+e isc_embed_dsql_declare
+e isc_embed_dsql_describe
+e isc_embed_dsql_describe_bind
+e isc_embed_dsql_execute
+e isc_embed_dsql_execute2
+e isc_embed_dsql_execute_immed
+e isc_embed_dsql_exec_immed2
+e isc_embed_dsql_fetch
+e isc_embed_dsql_fetch_a
+e isc_embed_dsql_insert
+e isc_embed_dsql_open
+e isc_embed_dsql_open2
+e isc_embed_dsql_prepare
+e isc_embed_dsql_release
# Error-handling functions
+e isc_interprete
+e fb_interpret
+e isc_print_sqlerror
+e isc_print_status
+e isc_sqlcode
+e isc_sql_interprete
# Event functions
+e isc_cancel_events
+e isc_event_block
+e isc_event_counts
+e isc_que_events
+e isc_wait_for_event
# Security functions
+e isc_add_user
+e isc_delete_user
+e isc_modify_user
# Services functions
+e isc_service_attach
+e isc_service_detach
+e isc_service_query
+e isc_service_start
# Transaction control functions
+e isc_commit_retaining
+e isc_commit_transaction
+e isc_prepare_transaction
+e isc_prepare_transaction2
+e isc_rollback_retaining
+e isc_rollback_transaction
+e isc_start_multiple
+e isc_start_transaction
+e isc_transaction_info
# Other functions
+e isc_compile_request
+e isc_compile_request2
+e isc_ddl
+e isc_prepare
+e isc_receive
+e isc_reconnect_transaction
+e isc_release_request
+e isc_request_info
+e isc_seek_blob
+e isc_send
+e isc_start_and_send
+e isc_start_request
+e isc_transact_request
+e isc_unwind_request
# Other SQL functions
+e isc_close
+e isc_declare
+e isc_describe
+e isc_describe_bind
+e isc_execute
+e isc_execute_immediate
+e isc_fetch
+e isc_fetch_a
+e isc_open
# Other BLOB functions
+e BLOB_close
+e BLOB_display
+e BLOB_dump
+e BLOB_edit
+e BLOB_get
+e BLOB_load
+e BLOB_open
+e BLOB_put
+e BLOB_text_dump
+e BLOB_text_load
+e Bopen
# Other misc functions
+e isc_ftof
+e isc_free
+e isc_print_blr
+e isc_qtoq
+e isc_reset_fpe
+e isc_set_debug
+e isc_to_sqlda
+e isc_vtof
+e isc_vtov
#-----------------
# OTHER FUNCTIONS
#-----------------
+e CVT_move
+e KEYWORD_stringIsAToken
+e KEYWORD_getTokens

View File

@ -9,14 +9,13 @@
# compile flags for GCC compiler
# -fno-builtin is used beacuse GCC 3.0 to 3.2.2 has a bug with builtin expansion
# Please remove if using other versions of GCC
PROD_FLAGS= -march=1.1 -pipe -fno-builtin -fPIC -O3 -MMD -DNDEBUG -DHP11 -DHPUX -D_HPUX_SOURCE -D_XOPEN_SOURCE_EXTENDED -march=2.0
PROD_FLAGS= -pipe -fno-builtin -fPIC -O3 -MMD -DNDEBUG -DHP11 -DHPUX -D_HPUX_SOURCE -D_XOPEN_SOURCE_EXTENDED -march=2.0
DEV_FLAGS= -ggdb -pipe -fPIC -MMD -DHP11 -DHPUX -D_HPUX_SOURCE -D_XOPEN_SOURCE_EXTENDED -D_REENTRANT -march=2.0
#Extra modules needed on this platform during bootstrap
JRDBOOT_Extra_Files=isc_sync.cpp thd.cpp
OS_ServerFiles=inet_server.cpp
#LIB_LINK_OPTIONS:= -fPIC -nostartfiles -Xlinker -b
LIB_LINK_OPTIONS:= -fPIC -shared
LIB_LINK_RPATH:= -Wl,+b
LIB_LINK_SONAME:= -Wl,+h
@ -24,8 +23,8 @@ LIB_LINK_MAPFILE= -Wl,-c
LINK_FBINTL_SYMBOLS= $(LIB_LINK_MAPFILE)$(ROOT)/builds/posix/fbintl.hpux.vers
LINK_FIREBIRD_SYMBOLS= $(LIB_LINK_MAPFILE)$(ROOT)/builds/posix/firebird.hpux.vers
EMBED_UTIL_TARGETS=gstat gds_drop gds_relay gsec fb_lock_print
CLIENT_UTIL_TARGETS=gds_drop gds_relay gstat gsec fbguard fbmgr_bin fb_lock_print
EMBED_UTIL_TARGETS=gstat gds_drop gds_relay gsec nbackup fb_lock_print
CLIENT_UTIL_TARGETS=gds_drop gds_relay gstat gsec nbackup fbguard fbmgr_bin fb_lock_print
Physical_IO_Module=unix.cpp

View File

@ -182,6 +182,7 @@ case "$target" in
LOCK_MANAGER_FLG=Y
EDITLINE_FLG=Y
SHRLIB_EXT=sl
libdir=/usr/lib/pa20_64
;;
i386-pc-solaris*)
@ -1011,6 +1012,24 @@ MAKE_SRC_DIR=builds/posix
dnl EKU: handle platform specific installation and packaging
dnl: Common Files
case "$PLATFORM" in
[LINUX|GENTOOFREEBSD|HPUX])
AC_CONFIG_FILES([
gen/install/misc/firebird.conf:builds/install/misc/firebird.conf
gen/install/misc/aliases.conf:builds/install/misc/aliases.conf.in
gen/install/misc/fbintl.conf:builds/install/misc/fbintl.conf
gen/firebird/bin/fb_config:builds/install/misc/fb_config.in
gen/firebird/bin/posixLibrary.sh:builds/install/misc/posixLibrary.sh.in
gen/firebird/bin/classicLibrary.sh:builds/install/misc/classicLibrary.sh.in
gen/firebird/bin/superLibrary.sh:builds/install/misc/superLibrary.sh.in
gen/firebird/bin/changeRunUser.sh:builds/install/misc/changeRunUser.sh.in
gen/firebird/bin/restoreRootRunUser.sh:builds/install/misc/restoreRootRunUser.sh.in],
[chmod a+x gen/install/scripts/*.sh gen/install/*sh 2>/dev/null])
;;
esac
dnl: Platform Specific Files
case "$PLATFORM" in
LINUX|GENTOOFREEBSD)
@ -1032,9 +1051,6 @@ case "$PLATFORM" in
gen/firebird/bin/tarMainUninstall.sh:${INSTALL_SRC_DIR}/tarMainUninstall.sh.in
gen/install/scripts/rpmheader.txt:${INSTALL_SRC_DIR}/rpmheader.txt.in
gen/install/scripts/rpmfiles.txt:${INSTALL_SRC_DIR}/rpmfiles.txt.in
gen/install/misc/firebird.conf:builds/install/misc/firebird.conf
gen/install/misc/aliases.conf:builds/install/misc/aliases.conf.in
gen/install/misc/fbintl.conf:builds/install/misc/fbintl.conf
gen/install/misc/firebird.xinetd:builds/install/arch-specific/linux/misc/firebird.xinetd.in
gen/install/misc/firebird.init.d.generic:builds/install/arch-specific/linux/misc/firebird.init.d.generic.in
gen/install/misc/firebird.init.d.mandrake:builds/install/arch-specific/linux/misc/firebird.init.d.mandrake.in
@ -1046,17 +1062,31 @@ case "$PLATFORM" in
gen/firebird/bin/changeDBAPassword.sh:builds/install/misc/changeDBAPassword.sh.in
gen/firebird/bin/changeGdsLibraryCompatibleLink.sh:builds/install/misc/changeGdsLibraryCompatibleLink.sh.in
gen/firebird/bin/createAliasDB.sh:builds/install/misc/createAliasDB.sh.in
gen/firebird/bin/fb_config:builds/install/misc/fb_config.in
gen/firebird/bin/changeRunUser.sh:builds/install/misc/changeRunUser.sh.in
gen/firebird/bin/restoreRootRunUser.sh:builds/install/misc/restoreRootRunUser.sh.in
gen/firebird/bin/posixLibrary.sh:builds/install/misc/posixLibrary.sh.in
gen/firebird/bin/classicLibrary.sh:builds/install/misc/classicLibrary.sh.in
gen/firebird/bin/superLibrary.sh:builds/install/misc/superLibrary.sh.in
gen/firebird/bin/linuxLibrary.sh:builds/install/arch-specific/linux/misc/linuxLibrary.sh.in
gen/firebird/bin/superLinux.sh:builds/install/arch-specific/linux/misc/superLinux.sh.in
],[chmod a+x gen/install/scripts/*.sh gen/install/*sh 2>/dev/null])
;;
HPUX)
HP_INSTALL_SRC_DIR=builds/install/arch-specific/hpux/${FIREBIRD_ARCH_TYPE}
AC_CONFIG_FILES([
gen/install/makeinstallImage.sh:${HP_INSTALL_SRC_DIR}/makeinstallImage.sh.in
gen/firebird/bin/preInstall.sh:${HP_INSTALL_SRC_DIR}/preInstall.sh.in
gen/firebird/bin/tarInstall.sh:${HP_INSTALL_SRC_DIR}/tarInstall.sh.in
gen/firebird/bin/tarmainInstall.sh:${HP_INSTALL_SRC_DIR}/tarmainInstall.sh.in
gen/firebird/bin/tarUninstall.sh:${HP_INSTALL_SRC_DIR}/tarUninstall.sh.in
gen/firebird/bin/tarmainUninstall.sh:${HP_INSTALL_SRC_DIR}/tarmainUninstall.sh.in
gen/firebird/bin/postInstall.sh:${HP_INSTALL_SRC_DIR}/postInstall.sh.in
gen/firebird/bin/preUninstall.sh:${HP_INSTALL_SRC_DIR}/preUninstall.sh.in
gen/firebird/bin/postUninstall.sh:${HP_INSTALL_SRC_DIR}/postUninstall.sh.in
gen/install/misc/firebird.init.d.hpux:builds/install/arch-specific/hpux/misc/firebird.init.d.hpux.in
gen/install/misc/rc.config.firebird.hpux:builds/install/arch-specific/hpux/misc/rc.config.firebird.hpux.in
gen/firebird/bin/changedbaPassword.sh:builds/install/arch-specific/hpux/misc/changedbaPassword.sh.in
gen/firebird/bin/changegdslibrarycompatibleLink.sh:builds/install/arch-specific/hpux/misc/changegdslibrarycompatibleLink.sh.in
gen/firebird/bin/hpuxLibrary.sh:builds/install/arch-specific/hpux/misc/hpuxLibrary.sh.in
gen/firebird/bin/createaliasDB.sh:builds/install/arch-specific/hpux/misc/createaliasDB.sh.in],
[chmod a+x gen/install/scripts/*.sh gen/install/*.sh 2>/dev/null])
;;
FREEBSD)
AC_CONFIG_FILES([gen/install/install.sh:builds/install/arch-specific/freebsd/install.sh.in