8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-02-02 10:40:38 +01:00

Moving install from 'src' to 'builds'

This commit is contained in:
brodsom 2003-07-08 22:59:57 +00:00
parent dd798f3b3b
commit b0ffeec028
56 changed files with 4220 additions and 9 deletions

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
<plist version="0.9">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>Firebird</string>
<key>CFBundleIdentifier</key>
<string>com.firebirdsql.Firebird</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>__VERSION__</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>__VERSION__</string>
</dict>
</plist>

View File

@ -0,0 +1,29 @@
# EKU: taken from Makefile.in.firebird
darwin_installer_common: force
$(QUIET_ECHO) "Building Firebird Installer..."
mkdir -p $(OBJS)/firebird/installer_tmp
$(MV) $(OBJS)/firebird/Firebird.framework $(OBJS)/firebird/installer_tmp
$(CP) $(SOURCE)/sandbox/bellardo/darwin/makefile \
$(OBJS)/firebird/installer_tmp
ln -s $(OBJS)/firebird/bellardo/darwin \
$(OBJS)/firebird/installer_tmp/files
ln -s ../.. $(OBJS)/firebird/installer_tmp/source
$(CD) $(OBJS)/firebird/installer_tmp && $(MAKE) install_package
$(RM) -rf $(OBJS)/firebird/installer_tmp
-$(RM) -rf $(OBJS)/firebird/Firebird.framework
darwin_installer: darwin_installer_common darwin_framework
super_darwin_installer: darwin_installer_common ss_darwin_framework
darwin_framework: force
$(QUIET_ECHO) "Building Classic Firebird Framework..."
$(RM) -rf $(OBJS)/firebird/Firebird2.framework
$(MAKE) -f $(SOURCE)/sandbox/bellardo/darwin/FirebirdFramework.make \
framework
ss_darwin_framework: force
$(QUIET_ECHO) "Building Super Server Firebird Framework..."
$(RM) -rf $(OBJS)/firebird/Firebird.framework
$(MAKE) -f $(SOURCE)/sandbox/bellardo/darwin/FirebirdFramework.make \
super_framework

View File

@ -0,0 +1,2 @@
# To be prepared
#

View File

@ -0,0 +1,170 @@
# 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.1 2003-07-08 22:57:24 brodsom 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 rpmfile
.PHONY: buildTarDir buildImageDir
# 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.gz
TarDir= Firebird$(ArchPrefix)-$(Version).$(CpuType)
TarFile=Firebird$(ArchPrefix)-$(Version).$(CpuType).tar.gz
RPMFile=Firebird$(ArchPrefix)-$(Version).$(CpuType).rpm
# Determine where the packages are built. Each distribution builds them in
# their own spot.
# This should be moved to configure.in file
RedhatPackageDir=/usr/src/redhat/RPMS/$(CpuType)
MandrakePackageDir=/usr/src/RPM/RPMS/$(CpuType)
SuSEPackageDir=/usr/src/packages/RPMS/$(CpuType)
PackageDir:=$(shell if [ -d $(RedhatPackageDir) ]; then echo $(RedhatPackageDir); \
elif [ -d $(MandrakePackageDir) ]; then echo $(MandrakePackageDir); \
elif [ -d $(SuSEPackageDir) ]; then echo $(SuSEPackageDir); \
fi)
PkgSrcDir=$(InstallRoot)/$(ArchType)
ScriptDir=$(GEN_ROOT)/install/scripts/
RPMSrcDir=$(GEN_ROOT)/install/scripts
TarInstallDir=$(GEN_ROOT)/install
dist : packages
packages: tarfile rpmfile
tarfile: $(TarFile)
$(TarFile) : buildTarDir
(cd $(GEN_ROOT); tar -czf $(TarFile) $(TarDir))
buildImageDir:
(cd $(GEN_ROOT); ./install/makeInstallImage.sh)
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)/$(TarDir); tar -C ../buildroot -czf buildroot.tar.gz . )
(cd $(GEN_ROOT)/$(TarDir); tar -tzf buildroot.tar.gz > manifest.txt )
install: buildTarDir
(cd $(GEN_ROOT)/$(TarDir); ./install.sh)
rpmfile: $(RPMFile)
$(RPMFile) : $(GEN_ROOT)/install/rpmscript buildImageDir
rpmbuild --define='_topdir @BUILD_ROOT_DIR@/gen/RPM' -bb $(GEN_ROOT)/install/rpmscript
# rpmbuild -bb --buildroot `pwd`/buildroot $(GEN_ROOT)/rpmscript
cp @BUILD_ROOT_DIR@/gen/RPM/RPMS/i686/$(RPMFile) $(GEN_ROOT)
.PHONY: $(GEN_ROOT)/install/rpmscript
$(GEN_ROOT)/install/rpmscript :
echo $@
cat $(RPMSrcDir)/rpmheader.txt > $@
echo "" >> $@
echo "%prep" >> $@
# cat $(ClassicSrcDir)/prepinstall.sh >> $@
echo "" >> $@
echo "%build" >> $@
# cat $(ScriptDir)/buildinstall.sh >> $@
echo "" >> $@
echo "%install" >> $@
# cat $(ScriptDir)/install.sh >> $@
echo "" >> $@
echo "%files" >> $@
cat $(RPMSrcDir)/rpmfiles.txt >> $@
echo "" >> $@
echo "%pre" >> $@
cat $(ScriptDir)/preinstall.sh >> $@
echo "" >> $@
echo "%post" >> $@
cat $(ScriptDir)/postinstall.sh >> $@
echo "" >> $@
echo "%preun" >> $@
cat $(ScriptDir)/preuninstall.sh >> $@
echo "" >> $@
echo "%postun" >> $@
cat $(ScriptDir)/postuninstall.sh >> $@

View File

@ -0,0 +1,22 @@
Firebird 1.0 Classic Server for Linux
More information can be found about the Firebird
database engine from:
http://firebird.sourceforge.net
http://sourceforge.net/projects/firebird
or affiliated sites:
http://www.ibphoenix.com
http://www.interbase2000.com
The Firebird database engine is derived from the
InterBase(tm) product currently owned by Inprise.
The documentation for InterBase v 6.0 applies also to
the current FireBird release. InterBase documentation
is available in Adobe Acrobat format from
http://www.interbase.com.

View File

@ -0,0 +1,216 @@
#!/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.1 2003-07-08 22:59:57 brodsom 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=@prefix@ # 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/UDF
mkdir $DestDir/misc
# 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/usr/lib
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
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
cp $BuiltFBDir/bin/CSchangeRunUser.sh $DestDir/bin
cp $BuiltFBDir/bin/CSrestoreRootRunUser.sh $DestDir/bin
cp $BuiltFBDir/bin/changeDBAPassword.sh $DestDir/bin
# 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/gds.f $DestDir/include
# cp $BuiltFBDir/include/gds.hxx $DestDir/include
cp $BuiltFBDir/include/*.h $DestDir/include
cp -df $BuiltFBDir/lib/libfbembed.so* $DestDir/lib
# cp -f $BuiltFBDir/lib/gds.a /usr/lib/libgds.a
cp -f $BuiltFBDir/lib/libib_util.so $DestDir/lib/libib_util.so
cp $BuiltFBDir/intl/libfbintl.so $DestDir/intl/fbintl
cp $BuiltFBDir/UDF/ib_udf.so $DestDir/UDF/
cp $BuiltFBDir/UDF/fb_udf.so $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/README.user.* $DestDir/doc
cp $BuildRootDir/doc/README.user $DestDir/README
cp $BuiltFBDir/misc/firebird.xinetd $DestDir/misc/firebird.xinetd
cp $BuiltFBDir/misc/firebird.conf $DestDir/firebird.conf
echo "#" >> $DestDir/aliases.conf
echo "# List of known database aliases" >> $DestDir/aliases.conf
echo "# ------------------------------" >> $DestDir/aliases.conf
echo "#" >> $DestDir/aliases.conf
echo "# Examples:" >> $DestDir/aliases.conf
echo "#" >> $DestDir/aliases.conf
echo "# employee = /$FBRootDir/examples/employee.fdb" >> $DestDir/aliases.conf
echo "#" >> $DestDir/aliases.conf
# Create links from /usr/lib to install area.
origDir=`pwd`
cd $DestDir
for i in lib/libfbembed.so*; do ln -s ../../$FBRootDir/$i $origDir/$TargetDir/usr/$i; done
cd $origDir
#ln -s ../../$FBRootDir/lib/libgds.a $TargetDir/usr/lib/libgds.a
ln -s ../../$FBRootDir/lib/libib_util.so $TargetDir/usr/lib/libib_util.so
# 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,728 @@
#!/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: postinstall.sh.in,v 1.1 2003-07-08 22:59:57 brodsom Exp $
#
# The post install script for Firebird Classic
#------------------------------------------------------------------------
# Prompt for response, store result in Answer
Answer=""
AskQuestion() {
Test=$1
DefaultAns=$2
echo -n "${1}"
Answer="$DefaultAns"
read Answer
}
#------------------------------------------------------------------------
# add a service line in the (usually) /etc/services or /etc/inetd.conf file
# Here there are three cases, not found => add service line,
# found & different => ask user to check
# found & same => do nothing
#
replaceLineInFile() {
FileName=$1
newLine=$2
oldLine=$3
if [ -z "$oldLine" ]
then
echo "$newLine" >> $FileName
elif [ "$oldLine" != "$newLine" ]
then
echo ""
echo "--- Warning ----------------------------------------------"
echo ""
echo " In file $FileName found line: "
echo " $oldLine"
echo " Which differs from the expected line:"
echo " $newLine"
echo ""
# AskQuestion "Press return to update file or ^C to abort install"
cat $FileName | grep -v "$oldLine" > ${FileName}.tmp
mv ${FileName}.tmp $FileName
echo "$newLine" >> $FileName
echo "Updated."
fi
}
#------------------------------------------------------------------------
# Add new user and group
addFirebirdUser() {
testStr=`grep firebird /etc/group`
if [ -z "$testStr" ]
then
groupadd -g 84 -o -r firebird
fi
testStr=`grep firebird /etc/passwd`
if [ -z "$testDir" ]
then
useradd -o -r -m -d $FBRootDir -s /bin/bash \
-c "Firebird Database Administrator" -g firebird -u 84 firebird
# >/dev/null 2>&1
fi
}
#------------------------------------------------------------------------
# Delete new user and group
deleteFirebirdUser() {
userdel firebird
# groupdel firebird
}
#------------------------------------------------------------------------
# changeXinetdServiceUser
# Change the run user of the xinetd service
# ex is used in place of ed, since at least on one mandrake release ed
# was not installed, but ex seems to always be installed MOD 7-Nov-2002
changeXinetdServiceUser() {
InitFile=/etc/xinetd.d/firebird
if [ -f $InitFile ]
then
ex -s $InitFile <<EOF
/ user /s/=.*\$/= $RunUser/g
w
q
EOF
fi
}
#------------------------------------------------------------------------
# Update inetd service entry
# This just adds/replaces the service entry line
updateInetdEntry() {
FileName=/etc/inetd.conf
newLine="gds_db stream tcp nowait.30000 $RunUser $FBBin/fb_inet_server gds_inet_server # InterBase Database Remote Server"
oldLine=`grep "^gds_db" $FileName`
replaceLineInFile "$FileName" "$newLine" "$oldLine"
}
#------------------------------------------------------------------------
# Update xinetd service entry
updateXinetdEntry() {
InitFile=/etc/xinetd.d/firebird
cp $FBRootDir/misc/firebird.xinetd $InitFile
chown root:root $InitFile
chmod o=rw,go=r $InitFile
changeXinetdServiceUser
}
#------------------------------------------------------------------------
# Update inetd service entry
# Check to see if we have xinetd installed or plain inetd. Install differs
# for each of them.
updateInetdServiceEntry() {
if [ -d /etc/xinetd.d ]
then
updateXinetdEntry
else
updateInetdEntry
fi
}
#------------------------------------------------------------------------
# Unable to generate the password for the rpm, so put out a message
# instead
keepOrigDBAPassword() {
DBAPasswordFile=$FBRootDir/SYSDBA.password
NewPasswd='masterkey'
echo "Firebird initial install password " > $DBAPasswordFile
echo "for user SYSDBA is : $NewPasswd" >> $DBAPasswordFile
echo "for install on `hostname` at time `date`" >> $DBAPasswordFile
echo "You should change this password at the earliest oportunity" >> $DBAPasswordFile
echo ""
echo "(For superserver you will also want to check the password in the" >> $DBAPasswordFile
echo "daemon init routine in the file /etc/init.d/firebird)" >> $DBAPasswordFile
echo "" >> $DBAPasswordFile
echo "Your should password can be changed to a more suitable one using the" >> $DBAPasswordFile
echo "@prefix@/bin/changeDBAPassword.sh script" >> $DBAPasswordFile
echo "" >> $DBAPasswordFile
chmod u=r,go= $DBAPasswordFile
}
#------------------------------------------------------------------------
# Generate new sysdba password - this routine is used only in the
# rpm file not in the install acript.
generateNewDBAPassword() {
DBAPasswordFile=$FBRootDir/SYSDBA.password
# openssl generates random data.
if [ -f /usr/bin/openssl ]
then
NewPasswd=`openssl rand -base64 10 | 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
if [ -z "$NewPasswd" ]
then
keepOrigDBAPassword
return
fi
echo "Firebird generated password " > $DBAPasswordFile
echo "for user SYSDBA is : $NewPasswd" >> $DBAPasswordFile
echo "generated on `hostname` at time `date`" >> $DBAPasswordFile
#echo "(For superserver you will also want to check the password in the" >> $DBAPasswordFile
#echo "daemon init routine in the file /etc/rc.d/init.d/firebird)" >> $DBAPasswordFile
echo "" >> $DBAPasswordFile
echo "Your password can be changed to a more suitable one using the" >> $DBAPasswordFile
echo "@prefix@/bin/changeDBAPassword.sh script" >> $DBAPasswordFile
echo "" >> $DBAPasswordFile
chmod u=r,go= $DBAPasswordFile
$FBBin/gsec -user sysdba -password masterkey <<EOF
modify sysdba -pw $NewPasswd
EOF
}
#------------------------------------------------------------------------
# Change sysdba password - this routine is interactive and is only
# used in the install shell script not the rpm one.
askUserForNewDBAPassword() {
NewPasswd=""
while [ -z "$NewPasswd" ]
do
# If using a generated password
# DBAPasswordFile=$FBRootDir/SYSDBA.password
# NewPasswd=`mkpasswd -l 8`
# echo "Password for SYSDBA on `hostname` is : $NewPasswd" > $DBAPasswordFile
# chmod ga-rwx $DBAPasswordFile
AskQuestion "Please enter new password for SYSDBA user: "
NewPasswd=$Answer
if [ ! -z "$NewPasswd" ]
then
$FBBin/gsec -user sysdba -password masterkey <<EOF
modify sysdba -pw $NewPasswd
EOF
echo ""
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
if [ -f /usr/bin/mkpasswd ]
then
generateNewDBAPassword
elif [ -f /usr/bin/openssl ]
then
generateNewDBAPassword
else
keepOrigDBAPassword
fi
else
askUserForNewDBAPassword
fi
}
#------------------------------------------------------------------------
# fixFilePermissions
# Change the permissions to restrict access to server programs to
# firebird group only. This is MUCH better from a saftey point of
# view than installing as root user, even if it requires a little
# more work.
fixFilePermissions() {
# Turn other access off.
chmod -R o= $FBRootDir
# Now fix up the mess.
# fix up directories
for i in `find $FBRootDir -print`
do
FileName=$i
if [ -d $FileName ]
then
chmod o=rx $FileName
fi
done
cd $FBBin
# set up the defaults for bin
for i in `ls`
do
chmod ug=rx,o= $i
done
# User can run these programs, they need to talk to server though.
# and they cannot actually create a database.
chmod a=rx isql
chmod a=rx qli
# fix up permissions for fbintl
chmod a=rx intl/fbintl
# SUID is still needed for group direct access. General users
# cannot run though.
for i in fb_lock_mgr gds_drop fb_inet_server
do
if [ -f $i ]
then
chmod ug=rx,o= $i
chmod ug+s $i
fi
done
cd $FBRootDir
# Fix lock files
for i in isc_init1 isc_lock1 isc_event1
do
FileName=$i.`hostname`
chmod ug=rw,o= $FileName
done
chmod ug=rw,o= firebird.log
chmod a=r aliases.conf
chmod a=r firebird.conf
chmod a=r firebird.msg
chmod a=r README
chmod ug=rw,o= help/help.fdb
chmod ug=rw,o= security.fdb
# Set a default of read all files in includes
for i in include lib UDF intl misc
do
cd $i
for j in `ls`
do
chmod a=r $j
done
cd ..
done
# Set a default of read all files in examples
cd examples
for i in `ls`
do
chmod a=r $i
done
# make examples db's writable by group
for i in `find . -name '*.gdb' -print`
do
chmod ug=rw,o= $i
done
}
#------------------------------------------------------------------------
# fixFilePermissionsForRoot
# This sets the file permissions up to what you need if you are
# running the server as root user. I hope to remove this mode
# of running before the next version, since it's security level
# is absolutely woeful.
#
# The main difference between fixFIlePermissionsRoot and fixFilePermissions
# is that non root assumes you must be a member of the group to access most
# of the files, wheras root user install gives world writable permission to
# the installation.
fixFilePermissionsRoot() {
# Turn other access off.
chmod -R o= $FBRootDir
# Now fix up the mess.
# fix up directories
for i in `find $FBRootDir -print`
do
FileName=$i
if [ -d $FileName ]
then
chmod o=rx $FileName
fi
done
cd $FBBin
# set up the defaults for bin
for i in `ls`
do
chmod o=rx $i
done
# SUID is still needed for group direct access. General users
# cannot run though.
for i in fb_lock_mgr gds_drop fb_inet_server
do
if [ -f $i ]
then
chmod ug+s $i
fi
done
cd $FBRootDir
# Set a default of read all files in includes
for i in include lib UDF intl misc
do
cd $i
for j in `ls`
do
chmod a=r $j
done
cd ..
done
# Fix lock files
for i in isc_init1 isc_lock1 isc_event1
do
FileName=$i.`hostname`
chmod a=rw $FileName
done
chmod a=rw firebird.log
chmod a=r aliases.conf
chmod a=r firebird.conf
chmod a=r firebird.msg
chmod a=r README
chmod a=rw help/help.fdb
chmod a=rw security.fdb
# fix up permissions for fbintl
chmod a=rx intl/fbintl
# Set a default of read all files in examples
cd examples
for i in `ls`
do
chmod a=r $i
done
# make examples db's writable by group
for i in `find . -name '*.gdb' -print`
do
chmod a=rw $i
done
}
#------------------------------------------------------------------------
# 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.
UpdateHostsDotEquivFile() {
hostEquivFile=/etc/hosts.equiv
if [ ! -f $hostEquivFile ]
then
touch $hostEquivFile
chown root:root $hostEquivFile
chmod u=rw,go=r $hostEquivFile
fi
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.gz install and it builds an
# uninstall shell script. The RPM system takes care of it's own.
buildUninstallFile() {
cd $origDir
if [ ! -f manifest.txt ] # Only do this if we are a .tar.gz install
then
return
fi
cp manifest.txt $FBRootDir/misc
cp -r scripts $FBRootDir/misc/
cp scripts/tarMainUninstall.sh $FBRootDir/bin/uninstall.sh
if [ -f /var/run/xinetd.pid ]
then
kill -USR2 `cat /var/run/xinetd.pid`
fi
}
#------------------------------------------------------------------------
# resetXinitdServer
# Check for both inetd and xinetd, only one will actually be running.
# depending upon your system.
resetInetdServer() {
if [ -f /var/run/inetd.pid ]
then
kill -HUP `cat /var/run/inetd.pid`
fi
if [ -f /var/run/xinetd.pid ]
then
kill -USR2 `cat /var/run/xinetd.pid`
fi
}
#------------------------------------------------------------------------
# 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.
if [ ! -e /usr/lib/libgds.so ]
then
ln -s ../../$FBRootDir/lib/libfbembed.so /usr/lib/libgds.so
fi
if [ ! -e /usr/lib/libgds.so.0 ]
then
ln -s ../../$FBRootDir/lib/libfbembed.so /usr/lib/libgds.so.0
fi
}
#= Main Post ===============================================================
# Make sure the links are in place
if [ -z "$FirebirdInstallPrefix" ]
then
FirebirdInstallPrefix=@prefix@
fi
origDir=`pwd`
FBRootDir=$FirebirdInstallPrefix
FBBin=$FBRootDir/bin
RunUser=root
# RunUser=firebird
# 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 # FirebirdSQL Database Remote Protocol"
oldLine=`grep "^gds_db" $FileName`
if [ -z "$oldLine" ]
then
echo "" >> $FileName
echo $newLine >> $FileName
echo "" >> $FileName
# replaceLineInFile "$FileName" "$newLine" "$oldLine"
fi
UpdateHostsDotEquivFile
# 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.$RunUser $FBRootDir
if [ "$RunUser" = "root" ]
then
fixFilePermissionsRoot
else
fixFilePermissions
fi
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
#keepOrigDBAPassword

View File

@ -0,0 +1,123 @@
#!/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: postuninstall.sh.in,v 1.1 2003-07-08 22:59:57 brodsom Exp $
#
# The post uninstall routine for Firebird Classic.
#------------------------------------------------------------------------
# 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
}
#------------------------------------------------------------------------
# remove the xinetd config file and restart the service
removeXInetDService() {
if [ -f /etc/xinetd.d/firebird ]
then
rm -f /etc/xinetd.d/firebird
fi
if [ -f /var/run/xinetd.pid ]
then
kill -USR2 `cat /var/run/xinetd.pid`
fi
}
#------------------------------------------------------------------------
# remove the inetd file and restart the service.
removeInetDService() {
# Next, lose the gds_db line from /etc/inetd.conf
FileName=/etc/inetd.conf
oldLine=`grep "^gds_db" $FileName`
removeLineFromFile "$FileName" "$oldLine"
# Get inetd to reread new inetd.conf file
if [ -f /var/run/inetd.pid ]
then
kill -HUP `cat /var/run/inetd.pid`
fi
}
#= Main PostUn ============================================================
# I don't think this is needed anymore.
# if [ -L /usr/lib/libgds.so ]
# then
# rm /usr/lib/libgds.so
# fi
if [ "$1"=0 ]
then
# Lose the gds_db line from /etc/services
# Leave it there, it was probably there already and does no
# harm. MOD 7-Nov-2002
#FileName=/etc/services
#oldLine=`grep "^gds_db" $FileName`
#removeLineFromFile "$FileName" "$oldLine"
if [ -d /etc/xinetd.d ]
then
removeXInetDService
elif [ -f /etc/inetd.d ]
then
removeInetDService
fi
fi

View File

@ -0,0 +1,428 @@
#!/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.1 2003-07-08 22:59:57 brodsom Exp $
#
# The pre install routine for Firebird Classic
#------------------------------------------------------------------------
# Prompt for response, store result in Answer
Answer=""
AskQuestion() {
Test=$1
DefaultAns=$2
echo -n "${1}"
Answer="$DefaultAns"
read Answer
}
#------------------------------------------------------------------------
# stop super server if it is running
# Also will only stop firebird, since that has the init script
stopServerIfRunning() {
checkString=`ps -efww| egrep "(fbserver|fbguard)" |grep -v grep`
if [ ! -z "$checkString" ]
then
if [ -f /etc/init.d/firebird ]
then
/etc/init.d/firebird stop
elif [ -f /etc/rc.d/init.d/firebird ]
then
/etc/rc.d/init.d/firebird stop
fi
fi
}
#------------------------------------------------------------------------
# stop server if it is running
checkIfServerRunning() {
stopServerIfRunning
# Check is server is being actively used.
checkString=`ps -efww| egrep "(fbserver|fbguard)" |grep -v grep`
if [ ! -z "$checkString" ]
then
echo "An instance of the Firebird Super server seems to be running."
echo "(the ibserver or ibguard process was detected running on your system)"
echo "Please quit all Firebird applications and then proceed"
exit 1
fi
checkString=`ps -efww| egrep "(fb_inet_server|gds_pipe)" |grep -v grep`
if [ ! -z "$checkString" ]
then
echo "An instance of the Firebird classic server seems to be running."
echo "(the gds_inet_server or gds_pipe process was detected running on your system)"
echo "Please quit all Firebird applications and then proceed."
exit 1
fi
# The following check for running interbase or firebird 1.0 servers.
checkString=`ps -efww| egrep "(ibserver|ibguard)" |grep -v grep`
if [ ! -z "$checkString" ]
then
echo "An instance of the Firebird/InterBase Super server seems to be running."
echo "(the ibserver or ibguard process was detected running on your system)"
echo "Please quit all Firebird applications and then proceed"
exit 1
fi
checkString=`ps -efww| egrep "(gds_inet_server|gds_pipe)" |grep -v grep`
if [ ! -z "$checkString" ]
then
echo "An instance of the Firebird/InterBase classic server seems to be running."
echo "(the gds_inet_server or gds_pipe process was detected running on your system)"
echo "Please quit all Firebird applications and then proceed."
exit 1
fi
# This one is commented out, since it usually works out ok, we have
# checked that no procesers are active, but inetd/xinetd is still listening
# the best thing would be to turn the service off, but I don't have time
# to do all the xinetd/inetd stuff, see the preunistall.sh script for details
#
# checkString=`netstat -an | egrep '3050.*LISTEN'`
#
# if [ ! -z "$checkString" ]
# then
# echo "An instance of the Firebird/InterBase server seems to be running."
# echo "(netstat -an reports a process is already listening on port 3050)"
# echo "Please quit all Firebird applications and then proceed."
# exit 1
# fi
# Stop lock manager if it is the only thing running.
for i in `ps -efww | egrep "[gds|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 "/"
archivePriorInstallSystemFilesX() {
oldPWD=`pwd`
archiveFileList=""
cd /
DestFile="$FBRootDir"
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 /usr/lib will be"
echo " archived in the file : ${ArchiveMainFile}"
echo ""
if [ ! -z "$InteractiveInstall" ]
then
AskQuestion "Press return to continue or ^C to abort"
fi
if [ -e $DestFile ]
then
archiveFileList="$archiveFileList $DestFile"
fi
fi
for i in gds.h ibase.h iberror.h ib_util.h
do
DestFile=usr/include/$i
if [ -e $DestFile ]
then
archiveFileList="$archiveFileList $DestFile"
fi
done
for i in gds_pyxis.a gds.a libfbembed.so.@FIREBIRD_VERSION@ libib_util.so libgds.a
do
DestFile=usr/lib/$i
if [ -e $DestFile ]
then
archiveFileList="$archiveFileList $DestFile"
fi
done
for i in usr/sbin/rcfirebird etc/init.d/firebird etc/rc.d/init.d/firebird
do
DestFile=$i
if [ -e $DestFile ]
then
archiveFileList="$archiveFileList $DestFile"
fi
done
if [ ! -z "$archiveFileList" ]
then
displayMessage "Archiving..."
runAndCheckExit "tar -czf $ArchiveMainFile $archiveFileList"
displayMessage "Done."
displayMessage "Deleting..."
for i in $archiveFileList
do
rm -rf $i
done
displayMessage "Done."
fi
cd $oldPWD
}
#------------------------------------------------------------------------
# Archive any existing prior installed files.
# This is mainly for the .tar.gz install since rpm packages take care of
# thier own.
archivePriorInstallSystemFiles() {
if [ ! -f manifest.txt ]
then
return
fi
archiveFileList=""
for i in `cat manifest.txt`
do
if [ ! -d /$i ] # Ignore directories
then
if [ -e /$i ]
then
archiveFileList="$archiveFileList $i"
fi
fi
done
for i in usr/sbin/rcfirebird etc/init.d/firebird etc/rc.d/init.d/firebird
do
DestFile=./$i
if [ -e /$DestFile ]
then
archiveFileList="$archiveFileList $DestFile"
fi
done
deleteFileList="$archiveFileList"
DestFile="$FBRootDir"
if [ ! -z "$archiveFileList" ]
then
cat <<EOF
** Warning **
Some existing files have been detected from a prior install of
FirebirdSQL (or InterBase). These files will be archived in
file : ${ArchiveMainFile}
and then deleted.
EOF
if [ ! -z "$InteractiveInstall" ]
then
AskQuestion "Press return to continue or ^C to abort"
fi
fi
if [ ! -z "$archiveFileList" ]
then
displayMessage "Archiving..."
runAndCheckExit "tar -C / -czf $ArchiveMainFile $archiveFileList"
displayMessage "Done."
displayMessage "Deleting..."
oldPWD=`pwd`
cd /
for i in $deleteFileList
do
echo $i
#rm -f $i
done
cd $oldPWD
displayMessage "Done."
fi
}
#------------------------------------------------------------------------
# Check for installed RPM package
# (Pavel I've left this in since originally I could test for other packages,
# even if they did not conflict with current ones, ie we can test InterBase
# and CS/SS The package manager does not allow it currently but I've left
# this in in case that sort of thing gets allowed again
checkForRPMInstall() {
PackageName=$1
rpm -q $PackageName
STATUS=$?
if [ $STATUS -eq 0 ]
then
echo "Previous version of $PackageName is detected on your system."
echo "this will conflict with the current install of Firebird"
echo "Please unistall the previous version `rpm -q $PackageName` and then proceed."
exit $STATUS
fi
}
#= Main Pre ================================================================
if [ -z "$FirebirdInstallPrefix" ]
then
FirebirdInstallPrefix=@prefix@
fi
FBRootDir=$FirebirdInstallPrefix
FBBin=$FBRootDir/bin
ArchiveDateTag=`date +"%Y%m%d_%H%M"`
ArchiveMainFile="${FBRootDir}_${ArchiveDateTag}.tar.gz"
# Ok so any of the following packages are a problem
# these don't work at least in the latest rpm manager, since it
# has the rpm database locked and it fails.
# checkForRPMInstall InterBase
# checkForRPMInstall FirebirdCS
# checkForRPMInstall FirebirdSS
checkIfServerRunning
# Failing that we archive any files we find
archivePriorInstallSystemFiles

View File

@ -0,0 +1,97 @@
#! /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.1 2003-07-08 22:59:57 brodsom Exp $
#
# The pre uninstall routines for Firebird Classic
#------------------------------------------------------------------------
# stop server if it is running
checkIfServerRunning() {
# Check is server is being actively used.
checkString=`ps -ef| egrep "(gds_inet_server|gds_pipe)" |grep -v grep`
if [ ! -z "$checkString" ]
then
echo "An instance of the Firebird/InterBase server seems to be running."
echo "(the gds_inet_server or gds_pipe process was detected running on your system)"
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 "[gds|fb]_lock_mgr" | cut -d' ' -f3`
do
kill $i
done
}
#= Main PreUn ================================================================
# This is a bit simple, but should work for now.
# cron will remove files in /tmp after a while.
if [ -z "$FirebirdInstallPrefix" ]
then
FirebirdInstallPrefix=@prefix@
fi
FBRootDir=$FirebirdInstallPrefix
FBBin=$FBRootDir/bin
checkIfServerRunning
cd $FBRootDir
if [ -f security.fdb ]
then
cp security.fdb /tmp
echo "Saved a copy of security.fdb 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,3 @@
/

View File

@ -0,0 +1,18 @@
Summary: Firebird Relational Database Server and Client tools.
Name: Firebird@ARCH_TYPE_SUFFIX@
Version: @FIREBIRD_VERSION@.@FB_BUILD_NUM@
Release: @FIREBIRD_PACKAGE_VERSION@
Copyright: Distributable
Group: Applications/Databases
Source: FirebirdCS0.9src.tar.gz
URL: http://firebird.sourceforge.net
# Prefix: /
AutoReqProv: no
BuildArchitectures: @CPU_TYPE@
# BuildRoot: /var/tmp/%{name}-buildroot
BuildRoot: @BUILD_ROOT_DIR@/gen/buildroot
%description
Firebird is a powerful, high-performance relational database designed to be embedded into
applications on multiple platforms.

View File

@ -0,0 +1,156 @@
#!/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.1 2003-07-08 22:59:57 brodsom 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=@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.gz 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,167 @@
#!/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.1 2003-07-08 22:59:57 brodsom 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 @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,47 @@
#! /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.1 2003-07-08 22:59:57 brodsom Exp $
#
# THe way this works is that the buildroot file is stored relative to the root
# directory and a tar -xzf at root directory will restore all the files in
# the position that we want them to be
OrigDir=`pwd`
cd /
tar -xzf $OrigDir/buildroot.tar.gz
cd $OrigDir

View File

@ -0,0 +1,115 @@
#! /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.1 2003-07-08 22:59:57 brodsom 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
}
#------------------------------------------------------------------------
# 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() {
dirContentChanged='yes'
while [ ! -z $dirContentChanged ]
do
dirContentChanged=''
for i in `find $FBRootDir -empty -type d -print`
do
rmdir $i
dirContentChanged=$i
done
if [ ! -d $FBRootDir ] # end loop if the FBRootDir was deleted.
then
dirContentChanged=''
fi
done
}
FBRootDir=@prefix@
FBBin=$FBRootDir/bin
removeInstalledFiles # Remove installed files
removeUninstallFiles # Remove the 'uninstall' utility files
removeEmptyDirs # Remove empty directories

View File

@ -0,0 +1,138 @@
#! /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
InitFile=/etc/rc.d/init.d/firebird
if [ -f $InitFile ]
then
ed $InitFile <<EOF
/ISC_PASSWORD/s/ISC_PASSWORD:=.*\}/ISC_PASSWORD:=$NewPasswd\}/g
w
q
EOF
chmod u=rwx,g=rx,o= $InitFile
fi
}
#------------------------------------------------------------------------
# Generate new sysdba password
generateNewDBAPassword() {
DBAPasswordFile=$IBRootDir/SYSDBA.password
NewPasswd=`mkpasswd -l 8`
echo "Firebird generated password " > $DBAPasswordFile
echo "for user SYSDBA is : $NewPasswd" >> $DBAPasswordFile
echo "generated on `hostname` at time `date`" >> $DBAPasswordFile
echo "" >> $DBAPasswordFile
echo "(For superserver you will also want to check the password in the" >> $DBAPasswordFile
echo "daemon init routine in the file /etc/rc.d/init.d/firebird)" >> $DBAPasswordFile
echo "" >> $DBAPasswordFile
echo "Your password can be changed to a more suitable one using the" >> $DBAPasswordFile
echo "/opt/interbase/bin/gsec program as show below:" >> $DBAPasswordFile
echo "" >> $DBAPasswordFile
echo ">cd /opt/interbase" >> $DBAPasswordFile
echo ">bin/gsec -user sysdba -password <password>" >> $DBAPasswordFile
echo "GSEC>modify sysdba -pw <newpassword>" >> $DBAPasswordFile
echo "GSEC>quit" >> $DBAPasswordFile
chmod u=rw,go= $DBAPasswordFile
$IBBin/gsec -user sysdba -password masterkey <<EOF
modify sysdba -pw $NewPasswd
EOF
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
$IBBin/gsec -user sysdba -password $OrigPasswd <<EOF
modify sysdba -pw $NewPasswd
EOF
echo ""
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 ===============================================================
IBRootDir=@prefix@
IBBin=$IBRootDir/bin
RunUser=root
InteractiveInstall=true
export InteractiveInstall
changeDBAPassword

View File

@ -0,0 +1,21 @@
# default: on
# description: FirebirdSQL server
#
# Be careful when commenting out entries in this file.
# Active entry should be first as some scripts
# (CSchangeRunUser.sh in particular) use sed scripting
# to modify it.
service gds_db
{
flags = REUSE
socket_type = stream
wait = no
user = root
# user = @FBRunUser@
log_on_success += USERID
log_on_failure += USERID
server = @prefix@/bin/fb_inet_server
# server = @sbindir@/gds_inet_server
# server = @exec_bindir@/gds_inet_server
disable = no
}

View File

@ -0,0 +1,191 @@
#!/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.1 2003-07-08 22:59:26 brodsom 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=@prefix@ # 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 super 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/UDF
mkdir $DestDir/misc
# 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/usr/lib
mkdir -p $TargetDir/usr/include
cp -f $BuiltFBDir/bin/fbserver $DestDir/bin/fbserver
cp $BuiltFBDir/bin/gbak $DestDir/bin/gbak
cp $BuiltFBDir/bin/gdef $DestDir/bin/gdef
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 $BuiltFBDir/bin/SSchangePasswd.sh $DestDir/bin
# 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 $BuiltFBDir/firebird.msg $DestDir/firebird.msg
cp $BuiltFBDir/security.fdb $DestDir/security.fdb
cp $BuiltFBDir/include/*.h $DestDir/include
cp -df $BuiltFBDir/lib/libfbclient.so* $DestDir/lib
cp -f $BuiltFBDir/lib/libib_util.so $DestDir/lib/libib_util.so
cp $BuiltFBDir/intl/libfbintl.so $DestDir/intl/fbintl
cp $BuiltFBDir/UDF/ib_udf.so $DestDir/UDF/
cp $BuiltFBDir/UDF/fb_udf.so $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/README.user.* $DestDir/doc
cp $BuildRootDir/doc/README.user $DestDir/README
cp $BuiltFBDir/misc/firebird.conf $DestDir/firebird.conf
echo "#" >> $DestDir/aliases.conf
echo "# List of known database aliases" >> $DestDir/aliases.conf
echo "# ------------------------------" >> $DestDir/aliases.conf
echo "#" >> $DestDir/aliases.conf
echo "# Examples:" >> $DestDir/aliases.conf
echo "#" >> $DestDir/aliases.conf
echo "# employee = /$FBRootDir/examples/employee.fdb" >> $DestDir/aliases.conf
echo "#" >> $DestDir/aliases.conf
# Create links from /usr/lib to install area.
origDir=`pwd`
cd $DestDir
for i in lib/libfb*.so*; do ln -s ../../$FBRootDir/$i $origDir/$TargetDir/usr/$i; done
cd $origDir
ln -s ../../$FBRootDir/lib/libib_util.so $TargetDir/usr/lib/libib_util.so
# 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,319 @@
#! /bin/sh
#------------------------------------------------------------------------
# Prompt for response, store result in Answer
Answer=""
AskQuestion() {
Test=$1
DefaultAns=$2
echo -n "${1}"
Answer="$DefaultAns"
read Answer
}
#------------------------------------------------------------------------
# add a service line in the (usually) /etc/services or /etc/inetd.conf file
# Here there are three cases, not found => add service line,
# found & different => ask user to check
# found & same => do nothing
#
replaceLineInFile() {
FileName=$1
newLine=$2
oldLine=$3
if [ -z "$oldLine" ]
then
echo "$newLine" >> $FileName
elif [ "$oldLine" != "$newLine" ]
then
echo ""
echo "--- Warning ----------------------------------------------"
echo ""
echo " In file $FileName found line: "
echo " $oldLine"
echo " Which differs from the expected line:"
echo " $newLine"
echo ""
# AskQuestion "Press return to update file or ^C to abort install"
cat $FileName | grep -v "$oldLine" > ${FileName}.tmp
mv ${FileName}.tmp $FileName
echo "$newLine" >> $FileName
echo "Updated."
fi
}
#------------------------------------------------------------------------
# remove line from config file if it exists in it.
removeLineFromFile() {
FileName=$1
oldLine=$2
if [ ! -z "$oldLine" ]
then
cat $FileName | grep -v "$oldLine" > ${FileName}.tmp
mv ${FileName}.tmp $FileName
echo "Updated."
fi
}
#------------------------------------------------------------------------
# changeInitPassword
changeInitPassword() {
NewPasswd=$1
InitFile=/etc/rc.d/init.d/firebird
if [ -f $InitFile ]
then
ed $InitFile <<EOF
/ISC_PASSWORD/s/ISC_PASSWORD:=.*\}/ISC_PASSWORD:=$NewPasswd\}/g
w
q
EOF
chmod u=rwx,g=rx,o= $InitFile
fi
}
#------------------------------------------------------------------------
# Unable to generate the password for the rpm, so put out a message
# instead
keepOrigDBAPassword() {
DBAPasswordFile=$IBRootDir/SYSDBA.password
NewPasswd='masterkey'
echo "Firebird initial install password " > $DBAPasswordFile
echo "for user SYSDBA is : $NewPasswd" >> $DBAPasswordFile
echo "for install on `hostname` at time `date`" >> $DBAPasswordFile
echo "You should change this password at the earliest oportunity" >> $DBAPasswordFile
echo ""
echo "(For superserver you will also want to check the password in the" >> $DBAPasswordFile
echo "daemon init routine in the file /etc/rc.d/init.d/firebird)" >> $DBAPasswordFile
echo "" >> $DBAPasswordFile
echo "Your should password can be changed to a more suitable one using the" >> $DBAPasswordFile
echo "/usr/local/firebird/bin/gsec program as show below:" >> $DBAPasswordFile
echo "" >> $DBAPasswordFile
echo ">cd /usr/local/firebird" >> $DBAPasswordFile
echo ">bin/gsec -user sysdba -password <password>" >> $DBAPasswordFile
echo "GSEC>modify sysdba -pw <newpassword>" >> $DBAPasswordFile
echo "GSEC>quit" >> $DBAPasswordFile
chmod u=r,go= $DBAPasswordFile
}
#------------------------------------------------------------------------
# Generate new sysdba password
generateNewDBAPassword() {
# Not all systems have mkpasswd, and there is also another mkpasswd which
# does different things. So if not at this specific place leave as default
NewPasswd=`/usr/bin/mkpasswd -l 8`
DBAPasswordFile=$IBRootDir/SYSDBA.password
NewPasswd=`mkpasswd -l 8`
echo "Firebird generated password " > $DBAPasswordFile
echo "for user SYSDBA is : $NewPasswd" >> $DBAPasswordFile
echo "generated on `hostname` at time `date`" >> $DBAPasswordFile
echo "" >> $DBAPasswordFile
echo "(For superserver you will also want to check the password in the" >> $DBAPasswordFile
echo "daemon init routine in the file /etc/rc.d/init.d/firebird)" >> $DBAPasswordFile
echo "" >> $DBAPasswordFile
echo "Your password can be changed to a more suitable one using the" >> $DBAPasswordFile
echo "/usr/local/firebird/bin/gsec program as show below:" >> $DBAPasswordFile
echo "" >> $DBAPasswordFile
echo ">cd /usr/local/firebird" >> $DBAPasswordFile
echo ">bin/gsec -user sysdba -password <password>" >> $DBAPasswordFile
echo "GSEC>modify sysdba -pw <newpassword>" >> $DBAPasswordFile
echo "GSEC>quit" >> $DBAPasswordFile
chmod u=rw,go= $DBAPasswordFile
$IBBin/gsec -user sysdba -password masterkey <<EOF
modify sysdba -pw $NewPasswd
EOF
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
$IBBin/gsec -user sysdba -password masterkey <<EOF
modify sysdba -pw $NewPasswd
EOF
echo ""
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
if [ -f /usr/bin/mkpasswd ]
then
generateNewDBAPassword
else
keepOrigDBAPassword
fi
else
askUserForNewDBAPassword
fi
}
#= Main Post ===============================================================
# Make sure the links are in place
if [ ! -L /usr/local/firebird -a ! -d /usr/local/firebird ]
then
# Main link and...
ln -s $RPM_INSTALL_PREFIX/interbase /usr/local/firebird
fi
IBRootDir=/usr/local/firebird
IBBin=$IBRootDir/bin
RunUser=root
# Update /etc/services
FileName=/etc/services
newLine="gds_db 3050/tcp # InterBase Database Remote Protocol"
oldLine=`grep "^gds_db" $FileName`
replaceLineInFile "$FileName" "$newLine" "$oldLine"
# remove any gds_db line in the /etc/inetd.conf
FileName=/etc/inetd.conf
oldLine=`grep "^gds_db" $FileName`
removeLineFromFile "$FileName" "$oldLine"
# 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 programs
chown -R $RunUser.$RunUser $IBRootDir
cd $IBBin
# Create the ibmgr shell script.
cat > ibmgr <<EOF
#!/bin/sh
INTERBASE=$IBRootDir
export INTERBASE
exec \$INTERBASE/bin/ibmgr.bin \$@
EOF
chmod u=rwx,go=rx *
# These two should only be executed by firebird user.
chmod u=rwx,go= ibguard ibserver
# Lock files
cd $IBRootDir
for i in isc_init1 isc_lock1 isc_event1 isc_guard1
do
FileName=$i.`hostname`
touch $FileName
chmod ug=rw,o= $FileName
done
touch interbase.log
chmod u=rw,go= interbase.log
# make examples writable by anyone
chmod uga+rw examples/*.gdb
chmod ug+rx,o= /etc/rc.d/init.d/firebird
# This will start it at runlevel defined within the firebird file itself.
/sbin/chkconfig --add firebird
# start the db server so we can change the password
(cd /etc/rc.d/init.d; ./firebird start)
# Change sysdba password
changeDBAPassword

View File

@ -0,0 +1,37 @@
#! /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
}
#= Main ProstUn ===============================================================
if [ -L /usr/lib/libgds.so ]
then
rm -f /usr/lib/libgds.so
fi
# Update /etc/services
FileName=/etc/services
oldLine=`grep "^gds_db" $FileName`
removeLineFromFile "$FileName" "$oldLine"

View File

@ -0,0 +1,237 @@
#! /bin/sh
#------------------------------------------------------------------------
# Prompt for response, store result in Answer
Answer=""
AskQuestion() {
Test=$1
DefaultAns=$2
echo -n "${1}"
Answer="$DefaultAns"
read Answer
}
#------------------------------------------------------------------------
# stop super server if it is running
# Also will only stop firebird, since that has the init script
stopServerIfRunning() {
checkString=`ps -efww| egrep "(ibserver|ibguard)" |grep -v grep`
if [ ! -z "$checkString" ]
then
if [ -f /etc/rc.d/init.d/firebird ]
then
/etc/rc.d/init.d/firebird stop
fi
fi
}
#------------------------------------------------------------------------
# Check if server is running
checkIfServerRunning() {
stopServerIfRunning
checkString=`ps -efww| egrep "(ibserver|ibguard)" |grep -v grep`
if [ ! -z "$checkString" ]
then
echo "An instance of the Firebird/InterBase Super server seems to be running."
echo "Please quit all interbase applications and then proceed"
exit 1
fi
checkString=`ps -efww| egrep "(gds_inet_server|gds_pipe)" |grep -v grep`
if [ ! -z "$checkString" ]
then
echo "An instance of the Firebird/InterBase server seems to be running."
echo "Please quit all interbase applications and then proceed."
exit 1
fi
# Stop lock manager if it is the only thing running.
for i in `ps -efww | egrep "[gds|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="opt/interbase"
if [ -e "$DestFile" ]
then
echo ""
echo ""
echo ""
echo "--- Warning ----------------------------------------------"
echo " The installation target directory: $IBRootDir"
echo " Already contains a prior installation of InterBase/Firebird."
echo " This and files found in /usr/include and /usr/lib will be"
echo " archived in the file : ${ArchiveMainFile}"
echo ""
if [ ! -z "$InteractiveInstall" ]
then
AskQuestion "Press return to continue or ^C to abort"
fi
if [ -e $DestFile ]
then
archiveFileList="$archiveFileList $DestFile"
fi
fi
for i in gds.h ibase.h iberror.h ib_util.h
do
DestFile=usr/include/$i
if [ -e $DestFile ]
then
archiveFileList="$archiveFileList $DestFile"
fi
done
for i in gds_pyxis.a gds.a libgds.so.0 libgds.so ib_util.so
do
DestFile=usr/lib/$i
if [ -e $DestFile ]
then
archiveFileList="$archiveFileList $DestFile"
fi
done
if [ ! -z "$archiveFileList" ]
then
displayMessage "Archiving..."
runAndCheckExit "tar -czf $ArchiveMainFile $archiveFileList"
displayMessage "Done."
displayMessage "Deleting..."
for i in $archiveFileList
do
rm -rf $i
done
displayMessage "Done."
fi
cd $oldPWD
}
#------------------------------------------------------------------------
# Check for installed RPM package
checkForRPMInstall() {
PackageName=$1
rpm -q $PackageName
STATUS=$?
if [ $STATUS -eq 0 ]
then
echo "Previous version of $PackageName is detected on your system."
echo "this will conflict with the current install of Firebird"
echo "Please unistall the previous version `rpm -q $PackageName` and then proceed."
exit $STATUS
fi
}
#== Main Pre =================================================================
IBRootDir=/opt/interbase
IBBin=$IBRootDir/bin
ArchiveDateTag=`date +"%Y%m%d_%H%M"`
ArchiveMainFile="${IBRootDir}_${ArchiveDateTag}.tar.gz"
# Ok so any of the following packages are a problem
# these don't work at least in the latest rpm manager, since it
# has the rpm database locked and it fails.
# checkForRPMInstall InterBase
# checkForRPMInstall FirebirdCS
# checkForRPMInstall FirebirdSS
checkIfServerRunning
# Failing that we archive any files we find
archivePriorInstallSystemFiles

View File

@ -0,0 +1,57 @@
#! /bin/sh
#------------------------------------------------------------------------
# stop server if it is running
stopServerIfRunning() {
checkString=`ps -ef| egrep "(ibserver|ibguard)" |grep -v grep`
if [ ! -z "$checkString" ]
then
/etc/rc.d/init.d/firebird stop
fi
}
#= Main PreUn ================================================================
IBRootDir=/opt/interbase
IBBin=$IBRootDir/bin
stopServerIfRunning
/sbin/chkconfig --del firebird
cd $IBRootDir
if [ -f isc4.gdb ]
then
cp isc4.gdb /tmp
echo "Saved a copy of isc4.gdb in /tmp"
fi
for i in isc_init1* isc_event1* isc_lock1* isc_guard* interbase.log SYSDBA.password
do
if [ -f $i ]
then
rm -f $i
fi
done
rm -f $IBBin/ibmgr

View File

@ -0,0 +1,47 @@
%dir /usr/local/firebird
%dir /usr/local/firebird/bin
%dir /usr/local/firebird/lib
%dir /usr/local/firebird/UDF
%dir /usr/local/firebird/intl
%dir /usr/local/firebird/help
/usr/local/firebird/bin/gbak
/usr/local/firebird/bin/gdef
/usr/local/firebird/bin/gds_lock_print
/usr/local/firebird/bin/gfix
/usr/local/firebird/bin/gpre
/usr/local/firebird/bin/gsec
/usr/local/firebird/bin/gsplit
/usr/local/firebird/bin/gstat
/usr/local/firebird/bin/security.gbak
/usr/local/firebird/bin/isql
/usr/local/firebird/bin/qli
/usr/local/firebird/bin/fbmgr.bin
/usr/local/firebird/bin/fbserver
/usr/local/firebird/bin/fbguard
/usr/local/firebird/bin/SSchangeRunUser.sh
/usr/local/firebird/bin/SSrestoreRootRunUser.sh
/usr/local/firebird/bin/changeDBAPassword.sh
/usr/local/firebird/examples
/usr/local/firebird/help/help.gbak
/usr/local/firebird/help/help.fdb
/usr/local/firebird/include
/usr/include/gds.h
/usr/include/iberror.h
/usr/include/ibase.h
/usr/local/firebird/doc
/usr/local/firebird/firebird.msg
/usr/local/firebird/security.fdb
/usr/local/firebird/firebird.conf
/usr/lib/libgds.so.0
/usr/lib/libgds.so
/usr/lib/libib_util.so
/usr/lib/libgds_pyxis.a
/usr/local/firebird/intl/gdsintl
/usr/local/firebird/UDF/ib_udf
/usr/local/firebird/services.isc
/usr/local/firebird/README
/etc/rc.d/init.d/firebird

View File

@ -0,0 +1,18 @@
Summary: Firebird Relational Database Server and Client tools.
Name: Firebird@ARCH_TYPE_SUFFIX@
Version: @FIREBIRD_VERSION@.@FB_BUILD_NUM@
Release: @FIREBIRD_PACKAGE_VERSION@
Copyright: Distributable
Group: Applications/Databases
Source: FirebirdCS0.9src.tar.gz
URL: http://firebird.sourceforge.net
# Prefix: /
AutoReqProv: no
BuildArchitectures: @CPU_TYPE@
# BuildRoot: /var/tmp/%{name}-buildroot
BuildRoot: @BUILD_ROOT_DIR@/gen/buildroot
%description
Firebird is a powerful, high-performance relational database designed to be embedded into
applications on multiple platforms.

View File

@ -0,0 +1,47 @@
#! /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.1 2003-07-08 22:59:26 brodsom Exp $
#
# THe way this works is that the buildroot file is stored relative to the root
# directory and a tar -xzf at root directory will restore all the files in
# the position that we want them to be
OrigDir=`pwd`
cd /
tar -xzf $OrigDir/buildroot.tar.gz
cd $OrigDir

View File

@ -0,0 +1,156 @@
#!/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.1 2003-07-08 22:59:26 brodsom 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=@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.gz 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,167 @@
#!/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.1 2003-07-08 22:59:26 brodsom 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 @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,115 @@
#! /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.1 2003-07-08 22:59:26 brodsom 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
}
#------------------------------------------------------------------------
# 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() {
dirContentChanged='yes'
while [ ! -z $dirContentChanged ]
do
dirContentChanged=''
for i in `find $FBRootDir -empty -type d -print`
do
rmdir $i
dirContentChanged=$i
done
if [ ! -d $FBRootDir ] # end loop if the FBRootDir was deleted.
then
dirContentChanged=''
fi
done
}
FBRootDir=@prefix@
FBBin=$FBRootDir/bin
removeInstalledFiles # Remove installed files
removeUninstallFiles # Remove the 'uninstall' utility files
removeEmptyDirs # Remove empty directories

View File

@ -0,0 +1,2 @@
# To be prepared
#

View File

@ -0,0 +1,56 @@
# 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: Erik Kunze <kunze@philosys.de>
#
# Contributor(s):
#
#
# $Id: Makefile.in,v 1.1 2003-07-08 22:58:56 brodsom Exp $
#
ROOT=..
include $(ROOT)/gen/make.defaults
include $(ROOT)/gen/make.platform
include $(ROOT)/gen/make.rules
include $(ROOT)/gen/make.shared.variables
@SET_MAKE@
PGK_FILES=pkginfo prototype preinstall postinstall postremove
PKG_DIR=$(RealFirebirdPath)/../install
PKG_NAME=Firebird-@ARCH_TYPE_SUFFIX@-$(FirebirdVersion).$(BuildNum)-$(PackageVersion)-SINIXZ.pkg
install package packages dist:
@echo Making SINIX-Z package...
rm -rf $(PKG_DIR)/firebird2
-mkdir -p $(PKG_DIR)
(cd $(PKG_DIR); pkgmk -o -c -d $(PKG_DIR))
pkgtrans -s $(PKG_DIR) $(PKG_DIR)/$(PKG_NAME) firebird2
clean clobber:
rm -rf $(PKG_DIR)/firebird2
rm -f $(PKG_DIR)/$(PKG_NAME)

View File

@ -0,0 +1,8 @@
LANG=En_US.ASCII
PKG="firebird2"
NAME="Firebird Database"
ARCH="i386"
VERSION="@FIREBIRD_VERSION@"
LOAD="@FIREBIRD_PACKAGE_VERSION@"
CATEGORY="application"
VENDOR="Fujitsu Siemens Computers"

View File

@ -0,0 +1,65 @@
#!/bin/sh
#
# $Header: /home/job/firebird/cvs-backup/firebird2/builds/install/arch-specific/sinixz/postinstall.in,v 1.1 2003-07-08 22:58:56 brodsom Exp $
#------------------------------------------------------------------------------
# $Copyright:
# Copyright (C) Siemens Nixdorf Informationssysteme AG 1994 - 1998
# Copyright (C) Siemens AG 1998 1999
# Copyright (C) Fujitsu Siemens Computers GmbH 1999 - 2002
# All rights reserved
# $
#------------------------------------------------------------------------------
FIREBIRD=@prefix@
cd $FIREBIRD
# Create lock files
HOSTNAME=`uname -n`
for i in isc_init1 isc_lock1 isc_event1
do
file=${i}.${HOSTNAME}
touch ${file}
chmod 666 ${file}
done
# Create log
touch firebird.log
chmod 666 firebird.log
#
# If TCP is installed, update both services and servers databases
#
if [ -f /etc/services ]; then
grep -s @FB_SERVICE_NAME@ /etc/services >/dev/null 2>&1
if [ $? -ne 0 ] ; then
echo "Patching /etc/services..."
echo "@FB_SERVICE_NAME@ @FB_SERVICE_PORT@/tcp # InterBase Database Remote Protocol" >>/etc/services
fi
fi
if [ -f /etc/inetd.conf ]; then
grep -s @FB_SERVICE_NAME@ /etc/inetd.conf >/dev/null 2>&1
if [ $? -ne 0 ] ; then
echo "Patching /etc/inetd.conf..."
echo "" >> /etc/inetd.conf
echo "# InterBase Database Remote Server" >> /etc/inetd.conf
echo "@FB_SERVICE_NAME@ stream tcp nowait.30000 root $FIREBIRD/bin/fb_inet_server fb_inet_server" >>/etc/inetd.conf
echo "Restarting inetd..."
kill -HUP `ps -e | grep inetd | awk '{print $1}'`
fi
fi
if [ -f /etc/profile ]; then
grep -s "# Enhance PATH for Firebird2" /etc/profile >/dev/null 2>&1
if [ $? -ne 0 ] ; then
echo "Patching /etc/profile..."
echo "# Enhance PATH for Firebird2" >>/etc/profile
echo "PATH=\$PATH:$FIREBIRD/bin" >>/etc/profile
echo "export PATH" >>/etc/profile
echo "LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:$FIREBIRD/lib" >>/etc/profile
echo "export LD_LIBRARY_PATH" >>/etc/profile
echo "INTERBASE=$FIREBIRD" >>/etc/profile
echo "export INTERBASE" >>/etc/profile
fi
fi
# EOF

View File

@ -0,0 +1,48 @@
#!/bin/sh
#
# $Header: /home/job/firebird/cvs-backup/firebird2/builds/install/arch-specific/sinixz/postremove.in,v 1.1 2003-07-08 22:58:56 brodsom Exp $
#------------------------------------------------------------------------------
# $Copyright:
# Copyright (C) Siemens Nixdorf Informationssysteme AG 1994 - 1998
# Copyright (C) Siemens AG 1998 1999
# Copyright (C) Fujitsu Siemens Computers GmbH 1999 2000
# All rights reserved
# $
#------------------------------------------------------------------------------
# Remove lock and log files
FIREBIRD=@prefix@
rm -rf $FIREBIRD
# restore old modules
case "$LANG" in
De*) echo "Wiederherstellen des Status vor $PKGINST ...";;
*) echo "restoring state before $PKGINST ..."
esac
cd ${PKGSAV}
find . -type f -exec /usr/bin/uncompress {} \;
ERROR_UNCOMPRESS=`find . -type f -name '*.Z' -print`
if [ -n "$ERROR_UNCOMPRESS" ]
then
echo "uncompress of \"${ERROR_UNCOMPRESS}\" failed, \nrun uncompress in ${PKGSAV} manually, \nand rest
ore the uncompressed files in the correct pathes.\n\n"
exit 1
fi
find . -type f -depth -print | cpio -pdum /
if [ $? -ne 0 ]
then
echo "restoring of saved files failed, \n please restore files in ${PKGSAV} manually!\n\n"
exit 1
fi
if [ -f /etc/inetd.conf ]; then
echo "Restarting inetd..."
kill -HUP `ps -e | grep inetd | awk '{print $1}'`
fi
# EOF

View File

@ -0,0 +1,53 @@
#!/bin/sh
# $Header: /home/job/firebird/cvs-backup/firebird2/builds/install/arch-specific/sinixz/preinstall.in,v 1.1 2003-07-08 22:58:56 brodsom Exp $
#------------------------------------------------------------------------------
# $Copyright:
# Copyright (C) Siemens Nixdorf Informationssysteme AG 1994 - 1998
# Copyright (C) Siemens AG 1998 1999
# Copyright (C) Fujitsu Siemens Computers GmbH 1999 2000
# All rights reserved
# $
#------------------------------------------------------------------------------
# save files which will be replaced
# don't save shell, will not be removed
FILELIST="
/etc/services
/etc/inetd.conf
/etc/profile
"
echo "saving the original modules ..."
if [ -f /tmp/ERROR.${PKGINST} ]
then
rm /tmp/ERROR.${PKGINST}
fi
for file in ${FILELIST};do
if [ ! -f ${PKGSAV}${file}.Z -a -f ${file} ];then
echo ${file} | tr '\040' '\012' | cpio -pvdum ${PKGSAV}
/usr/bin/compress ${PKGSAV}${file}
fi
done >/tmp/ERROR.${PKGINST} 2>&1
# check for successful saved modules
ERR=0
for file in ${FILELIST}; do
[ ! -s ${file} ] && continue
if [ ! -f ${PKGSAV}${file}.Z ]; then
if [ "$ERR" = '0' ];then
echo "\nAn error occured when saving original modules. \ntmp/ERROR.${PKGINST} contains the reported errors.\n\n"
echo "/tmp/ERROR.${PKGINST}:"
cat /tmp/ERROR.${PKGINST}
ERR=1
fi
ls -l $file ${PKGSAV}${file}.Z
fi
done
[ "$ERR" = '0' ] && rm -f /tmp/ERROR.${PKGINST}
exit 0

View File

@ -0,0 +1,86 @@
# $Id: prototype.in,v 1.1 2003-07-08 22:58:56 brodsom Exp $
#-------------------------------------------------------------------------------
!SRCDIR=@NEW_FIREBIRD_DIR@
i pkginfo
i preinstall
i postinstall
i postremove
i prototype
!default 755 root root
d none /usr ? ? ?
d none /usr/lib ? ? ?
d none @prefix@ 0755 root root
v CONFIG.prsv @prefix@/security.fdb=$SRCDIR/security.fdb 0666 root root
f none @prefix@/firebird.msg=$SRCDIR/firebird.msg 0644 root root
f none @prefix@/de_DE.msg=$SRCDIR/de_DE.msg 0644 root root
f none @prefix@/fr_FR.msg=$SRCDIR/fr_FR.msg 0644 root root
f none @prefix@/ja_JP.msg=$SRCDIR/ja_JP.msg 0644 root root
v CONFIG.prsv @prefix@/firebird.conf=$SRCDIR/misc/firebird.conf 0644 root root
d none @prefix@/bin 0755 root root
#f none @prefix@/bin/CSchangeRunUser.sh=$SRCDIR/bin/CSchangeRunUser.sh 0555 root root
#f none @prefix@/bin/CSrestoreRootRunUser.sh=$SRCDIR/bin/CSrestoreRootRunUser.sh 0555 root root
#f none @prefix@/bin/build_file=$SRCDIR/bin/build_file 0755 root root
#f none @prefix@/bin/changeDBAPassword.sh=$SRCDIR/bin/changeDBAPassword.sh 0555 root root
#f none @prefix@/bin/change_messages=$SRCDIR/bin/change_messages 0755 root root
#f none @prefix@/bin/check_messages=$SRCDIR/bin/check_messages 0755 root root
#f none @prefix@/bin/create_db=$SRCDIR/bin/create_db 0755 root root
#f none @prefix@/bin/enter_messages=$SRCDIR/bin/enter_messages 0755 root root
f none @prefix@/bin/fb_inet_server=$SRCDIR/bin/fb_inet_server 0755 root root
f none @prefix@/bin/gbak=$SRCDIR/bin/gbak 0755 root root
#f none @prefix@/bin/gbak_static=$SRCDIR/bin/gbak_static 0755 root root
f none @prefix@/bin/gdef=$SRCDIR/bin/gdef 0755 root root
f none @prefix@/bin/gds_drop=$SRCDIR/bin/gds_drop 0755 root root
#f none @prefix@/bin/gds_lock_mgr=$SRCDIR/bin/gds_lock_mgr 0755 root root
#f none @prefix@/bin/gds_relay=$SRCDIR/bin/gds_relay 0755 root root
f none @prefix@/bin/gfix=$SRCDIR/bin/gfix 0755 root root
f none @prefix@/bin/gpre=$SRCDIR/bin/gpre 0755 root root
#f none @prefix@/bin/gpre_boot=$SRCDIR/bin/gpre_boot 0755 root root
#s none @prefix@/bin/gpre_current=gpre_static
#f none @prefix@/bin/gpre_static=$SRCDIR/bin/gpre_static 0755 root root
f none @prefix@/bin/gsec=$SRCDIR/bin/gsec 0755 root root
f none @prefix@/bin/gstat=$SRCDIR/bin/gstat 0755 root root
f none @prefix@/bin/isql=$SRCDIR/bin/isql 0755 root root
#f none @prefix@/bin/isql_static=$SRCDIR/bin/isql_static 0755 root root
#f none @prefix@/bin/modify_messages=$SRCDIR/bin/modify_messages 0755 root root
f none @prefix@/bin/qli=$SRCDIR/bin/qli 0755 root root
#d none @prefix@/examples 0755 root root
#d none @prefix@/examples/v5 0755 root root
d none @prefix@/help 0755 root root
f none @prefix@/help/help.fdb=$SRCDIR/help/help.fdb 0444 root root
d none @prefix@/include 0755 root root
#f none @prefix@/include/blr.h=$SRCDIR/include/blr.h 0644 root root
#f none @prefix@/include/gds.h=$SRCDIR/include/gds.h 0644 root root
#f none @prefix@/include/ib_util.h=$SRCDIR/include/ib_util.h 0644 root root
f none @prefix@/include/ibase.h=$SRCDIR/include/ibase.h 0644 root root
f none @prefix@/include/iberror.h=$SRCDIR/include/iberror.h 0644 root root
#f none @prefix@/include/perf.h=$SRCDIR/include/perf.h 0644 root root
d none @prefix@/intl 0755 root root
f none @prefix@/intl/libfbintl.so=$SRCDIR/intl/libfbintl.so 0755 root root
d none @prefix@/lib 0755 root root
f none @prefix@/lib/libib_util.so=$SRCDIR/lib/libib_util.so 0755 root root
#f none @prefix@/lib/libfbcommon.a=$SRCDIR/lib/libfbcommon.a 0644 root root
f none @prefix@/lib/libfbembed.so.1.5.0=$SRCDIR/lib/libfbembed.so.1.5.0 0755 root root
s none @prefix@/lib/libfbembed.so.1=@prefix@/lib/libfbembed.so.1.5.0
s none @prefix@/lib/libfbembed.so=@prefix@/lib/libfbembed.so.1
#f none @prefix@/lib/libfbstatic.a=$SRCDIR/lib/libfbstatic.a 0644 root root
s none /usr/lib/libfbembed.so.1=@prefix@/lib/libfbembed.so.1
s none /usr/lib/libfbembed.so=@prefix@/lib/libfbembed.so
#s none /usr/lib/libgds.so.1=@prefix@/lib/libfbembed.so.1
#s none /usr/lib/libgds.so=@prefix@/lib/libfbembed.so
d none @prefix@/UDF 0755 root root
f none @prefix@/UDF/fb_udf.so=$SRCDIR/UDF/fb_udf.so 0755 root root
f none @prefix@/UDF/ib_udf.so=$SRCDIR/UDF/ib_udf.so 0755 root root
# EOF

View File

@ -0,0 +1 @@
# to be done but configure requires it or fails

View File

@ -75,7 +75,7 @@ copy %SystemRoot%\System32\msvcp%msvc_version%0.dll . >nul
:: grab some missing bits'n'pieces from different parts of the source tree
::=========================================================================
copy %ROOT_PATH%\src\install\misc\firebird.conf %ROOT_PATH%\output\ > nul
copy %ROOT_PATH%\builds\install\misc\firebird.conf %ROOT_PATH%\output\ > nul
@if %ERRORLEVEL% GEQ 1 ( (call :ERROR COPY of firebird.conf failed ) & (goto :EOF))
mkdir %ROOT_PATH%\output\examples 2>nul

View File

@ -49,11 +49,11 @@ DefaultDirName={code:InstallDir|{pf}\Firebird\Firebird_{#BaseVer}}
DefaultGroupName=Firebird_{#BaseVer}
AllowNoIcons=true
SourceDir=..\..\..\..\..\firebird2
LicenseFile=src\install\misc\IPLicense.txt
InfoBeforeFile=src\install\arch-specific\win32\installation_readme.txt
InfoAfterFile=src\install\arch-specific\win32\readme.txt
LicenseFile=builds\install\misc\IPLicense.txt
InfoBeforeFile=builds\install\arch-specific\win32\installation_readme.txt
InfoAfterFile=builds\install\arch-specific\win32\readme.txt
AlwaysShowComponentsList=true
WizardImageFile=src\install\arch-specific\win32\firebird_install_logo1.bmp
WizardImageFile=builds\install\arch-specific\win32\firebird_install_logo1.bmp
PrivilegesRequired=admin
#ifdef classic_server_install
UninstallDisplayIcon={app}\bin\fb_inet_server.exe
@ -120,8 +120,8 @@ Name: "{group}\Firebird 1.5 Readme"; Filename: {app}\readme.txt; MinVersion: 4.0
Name: "{group}\Uninstall Firebird"; Filename: {uninstallexe}; Comment: "Uninstall Firebird"
[Files]
Source: src\install\misc\IPLicense.txt; DestDir: {app}; Components: ClientComponent; Flags: sharedfile ignoreversion;
Source: src\install\arch-specific\win32\readme.txt; DestDir: {app}; Components: DevAdminComponent; Flags: ignoreversion;
Source: builds\install\misc\IPLicense.txt; DestDir: {app}; Components: ClientComponent; Flags: sharedfile ignoreversion;
Source: builds\install\arch-specific\win32\readme.txt; DestDir: {app}; Components: DevAdminComponent; Flags: ignoreversion;
Source: output\firebird.conf; DestDir: {app}; Components: ServerComponent; Flags: uninsneveruninstall onlyifdoesntexist;
Source: output\aliases.conf; DestDir: {app}; Components: ServerComponent; Flags: uninsneveruninstall onlyifdoesntexist;
Source: output\security.fdb; DestDir: {app}; Components: ServerComponent; Flags: uninsneveruninstall onlyifdoesntexist;
@ -164,8 +164,8 @@ Source: output\examples\*.*; DestDir: {app}\examples; Components: DevAdminCompon
;Source: output\bin\fbclient.dll; DestDir: {app}\bin; Components: ClientComponent; Flags: overwritereadonly sharedfile promptifolder;
Source: output\bin\gds32.dll; DestDir: {sys}\; Components: ClientComponent; Flags: overwritereadonly sharedfile promptifolder;
Source: output\bin\fbclient.dll; DestDir: {sys}\; Components: ClientComponent; Flags: overwritereadonly sharedfile promptifolder;
Source: src\install\arch-specific\win32\msvcrt.dll; DestDir: {sys}\; Components: ClientComponent; Flags: uninsneveruninstall sharedfile onlyifdoesntexist;
Source: src\install\arch-specific\win32\msvcp{#msvc_version}0.dll; DestDir: {sys}\; Components: ClientComponent; Flags: uninsneveruninstall sharedfile onlyifdoesntexist;
Source: builds\install\arch-specific\win32\msvcrt.dll; DestDir: {sys}\; Components: ClientComponent; Flags: uninsneveruninstall sharedfile onlyifdoesntexist;
Source: builds\install\arch-specific\win32\msvcp{#msvc_version}0.dll; DestDir: {sys}\; Components: ClientComponent; Flags: uninsneveruninstall sharedfile onlyifdoesntexist;
Source: src\extlib\fbudf\fbudf.sql; DestDir: {app}\examples; Components: ServerComponent; Flags: ignoreversion;
Source: src\extlib\fbudf\fbudf.txt; DestDir: {app}\doc; Components: ServerComponent; Flags: ignoreversion;
Source: src\extlib\ib_util.pas; DestDir: {app}\include; Components: DevAdminComponent; Flags: ignoreversion;

View File

Before

Width:  |  Height:  |  Size: 151 KiB

After

Width:  |  Height:  |  Size: 151 KiB

View File