mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-23 04:43:03 +01:00
136 lines
4.4 KiB
Bash
136 lines
4.4 KiB
Bash
#!/bin/sh
|
|
#
|
|
# Script args:
|
|
# $0: full path to script
|
|
# $1: full path to top level package dir, no trailing slash
|
|
# $2: full path to installed location
|
|
# $3: ????? Path to install Volume????
|
|
# $4: ?????
|
|
|
|
# MacOS Notes
|
|
# 10.7 Lion
|
|
# 10.8 Mountain Lion
|
|
# 10.9 Mavericks - Clang not gcc
|
|
# 10.10 Yosemite - No longer uses StartupItems
|
|
# 10.11 El Capitan - Old installer deprecated -pkgbuild
|
|
|
|
OSVERSION=`sw_vers -productVersion | awk -F '.' '{print $2}'`
|
|
echo "OSVersion =" $OSVERSION
|
|
|
|
FB_FW="/Library/Frameworks/Firebird.framework"
|
|
FB_RES="$FB_FW/Versions/A/Resources"
|
|
|
|
# Now create the firebird group
|
|
echo "Create the Firebird group 10.7+"
|
|
if dscl localhost -read /Local/Default/Groups/firebird 2&>1 /dev/null; then
|
|
gid=$(dscl localhost -read /Local/Default/Groups/firebird PrimaryGroupID | awk '($1 == "PrimaryGroupID:") { print $2 }')
|
|
echo "Group Found $gid"
|
|
else
|
|
gid=501
|
|
dscl localhost -search /Local/Default/Groups PrimaryGroupID $gid | grep $gid
|
|
while [ "$?" = "0" ]; do
|
|
let "gid =$gid+1"
|
|
dscl localhost -search /Local/Default/Groups PrimaryGroupID $gid | grep $gid
|
|
done
|
|
dscl localhost -create /Local/Default/Groups/firebird
|
|
dscl localhost -create /Local/Default/Groups/firebird Password "*"
|
|
dscl localhost -create /Local/Default/Groups/firebird PrimaryGroupID $gid
|
|
dscl localhost -create /Local/Default/Groups/firebird RecordName firebird
|
|
fi
|
|
|
|
|
|
# Now create the firebird user
|
|
echo "Create the Firebird user 10.7+"
|
|
if dscl localhost -read /Local/Default/Users/firebird 2&>1 /dev/null; then
|
|
echo "User Found"
|
|
else
|
|
ugid=501
|
|
dscl localhost -search /Local/Default/Users UniqueID $ugid | grep $ugid
|
|
while [ "$?" = "0" ]; do
|
|
let "ugid=$ugid+1"
|
|
dscl localhost -search /Local/Default/Users UniqueID $ugid | grep $ugid
|
|
done
|
|
echo "create the firebird user 10.7+"
|
|
dscl localhost -create /Local/Default/Users/firebird
|
|
dscl localhost -create /Local/Default/Users/firebird NFSHomeDirectory /Library/Frameworks/firebird.framework
|
|
dscl localhost -create /Local/Default/Users/firebird Password "*"
|
|
dscl localhost -create /Local/Default/Users/firebird UserShell /bin/tcsh
|
|
dscl localhost -create /Local/Default/Users/firebird RecordName firebird
|
|
dscl localhost -create /Local/Default/Users/firebird PrimaryGroupID $gid
|
|
dscl localhost -create /Local/Default/Users/firebird UniqueID $ugid
|
|
dscl localhost -create /Local/Default/Users/firebird RealName "Firebird Database"
|
|
fi
|
|
|
|
# Shutdown any existing servers
|
|
echo "Shutdown any existing servers"
|
|
if [ -x /sbin/service ]; then
|
|
service firebird stop
|
|
fi
|
|
|
|
# Install the framework
|
|
echo "Install the framework"
|
|
chown -R firebird:firebird "$FB_FW"
|
|
|
|
# set the permissions correctly
|
|
echo "Set the permissions correctly"
|
|
chmod 777 "$FB_FW/Resources/"
|
|
chmod 660 "$FB_FW/Resources/security6.fdb"
|
|
|
|
# Remove all older traces of Classic first
|
|
echo "Remove all older traces of Classic first"
|
|
if [ -f /etc/inetd.conf ]; then
|
|
grep -s gds_db /etc/inetd.conf > /dev/null 2>&1
|
|
if test $? != 0 ; then
|
|
cat /etc/inetd.conf | grep -v gds_db > /etc/.firebird.temp.install.inetd.conf
|
|
mv /etc/.firebird.temp.install.inetd.conf /etc/inetd.conf
|
|
HUPNEEDED='y'
|
|
fi
|
|
fi
|
|
|
|
if [ -f /etc/xinetd.d/firebird ]; then
|
|
rm /etc/xinetd.d/firebird
|
|
HUPNEEDED='y'
|
|
fi
|
|
|
|
# Install the saved security database, if any
|
|
echo "Install the saved security database"
|
|
if test -f /tmp/fb-security-database-update5.fdb; then
|
|
mv -f /tmp/fb-security-database-update5.fdb "$FB_RES/security6.fdb"
|
|
rm -f /tmp/fb-security-database-update5.fdb
|
|
fi
|
|
|
|
#Install the saved aliases.conf, if any
|
|
echo "Install the saved aliases.conf file"
|
|
if test -f /tmp/fb-aliases.conf; then
|
|
mv -f /tmp/fb-aliases.conf "$FB_RES/English.lproj/var/aliases.conf"
|
|
fi
|
|
|
|
#Install the saved databases.conf, if any
|
|
echo "Install the saved databases.conf file"
|
|
if test -f /tmp/fb-databases.conf; then
|
|
mv -f /tmp/fb-databases.conf "$FB_RES/databases.conf"
|
|
fi
|
|
|
|
#Install the saved UDF libraries, if any
|
|
echo "Install the saved UDF libraries"
|
|
cp /tmp/UDF_Save/*.* $FB_RES/UDF/
|
|
|
|
rm -fr /tmp/UDF_save
|
|
|
|
# Test for saved security database
|
|
if test -f "$FB_RES/security6.fdb"; then
|
|
echo "Security database has been preserved"
|
|
fi
|
|
|
|
# Initilise the security database with default user
|
|
echo "Add SYSDBA and password"
|
|
$FB_RES/bin/gsec -add sysdba -pw masterkey -user sysdba
|
|
rm -fr /tmp/firebird
|
|
|
|
# And last but not least, start the Server
|
|
echo "Start the Server via launchctl"
|
|
|
|
cp $FB_FW/Resources/org.firebird.gds.plist /Library/LaunchDaemons/org.firebird.gds.plist
|
|
launchctl load /Library/LaunchDaemons/org.firebird.gds.plist
|
|
|