aboutsummaryrefslogtreecommitdiffstats
path: root/databases/firebird-client/pkg-install
diff options
context:
space:
mode:
authorale <ale@FreeBSD.org>2004-01-14 00:11:11 +0800
committerale <ale@FreeBSD.org>2004-01-14 00:11:11 +0800
commit5d93800c372ff76e0f47af7088744b6cb0a3acb2 (patch)
treefff064e3d4045dfa22c4fe0484c1f038cc899d0f /databases/firebird-client/pkg-install
parent84b8f2b46782ffbec1e1bc1327d8c98dac9f526a (diff)
downloadfreebsd-ports-gnome-5d93800c372ff76e0f47af7088744b6cb0a3acb2.tar.gz
freebsd-ports-gnome-5d93800c372ff76e0f47af7088744b6cb0a3acb2.tar.zst
freebsd-ports-gnome-5d93800c372ff76e0f47af7088744b6cb0a3acb2.zip
- Update to 1.5 RC8. [1] [2]
- Note that libgds.so is now symlinked to libfbembed.so rather than libfbclient.so. This restores Firebird 1.0.x shared library compatibility and fixes PHP build. [2] PR: ports/61276 [1], ports/61310 [2] Submitted by: Gleb Smirnoff <glebius@cell.sick.ru> [1], Chris Knight <chris@e-easy.com.au> (maintainer) [2] Approved by: nork (mentor)
Diffstat (limited to 'databases/firebird-client/pkg-install')
-rw-r--r--databases/firebird-client/pkg-install171
1 files changed, 171 insertions, 0 deletions
diff --git a/databases/firebird-client/pkg-install b/databases/firebird-client/pkg-install
new file mode 100644
index 000000000000..6bcb9adcb3f7
--- /dev/null
+++ b/databases/firebird-client/pkg-install
@@ -0,0 +1,171 @@
+#!/bin/sh
+
+# $FreeBSD$
+
+PATH=/bin:/usr/bin:/usr/sbin
+
+case $2 in
+PRE-INSTALL)
+
+if [ -d $PKG_PREFIX/firebird ]; then
+ if [ -d $PKG_PREFIX/firebird.old ]; then
+ rm -rf $PKG_PREFIX/firebird.old
+ fi
+ cp -Rp $PKG_PREFIX/firebird $PKG_PREFIX/firebird.old
+fi
+
+if [ `id -u` -ne 0 ]; then
+ echo; echo "You must be root to run this step!"; echo; echo
+ exit 1
+fi
+
+nofbuid=0
+fbUID=`id -u firebird 2>/dev/null`
+if [ $? -ne 0 ]; then
+ fbUID=90
+ while [ ! -z `id -un $fbUID 2>/dev/null` ]
+ do
+ fbUID=$(($fbUID+1))
+ done
+ nofbuid=1
+fi
+
+fbGID=`pw groupshow firebird 2>/dev/null`
+if [ $? -ne 0 ]; then
+ fbGID=90
+ while [ ! -z `id -gn $fbGID 2>/dev/null` ]
+ do
+ fbGID=$(($fbGID+1))
+ done
+ echo "firebird:*:$fbGID:" >> /etc/group
+else
+ fbGID=`echo $fbGID | awk -F: '{print $3}'`
+fi
+
+echo "firebird user using uid $fbUID"
+echo "firebird user using gid $fbGID"
+
+if which -s pw; then
+ if [ $nofbuid -ne 0 ]; then
+ pw useradd firebird -u $fbUID -g $fbGID -h - -s /bin/sh \
+ -d $PKG_PREFIX/firebird -c "Firebird Database Administrator"
+ fi
+else
+ echo -n "unable to create user firebird - please create it manually,"
+ echo " before reinstalling this package."
+ exit 1
+fi
+;;
+
+POST-INSTALL)
+chown -R firebird:firebird $PKG_PREFIX/firebird
+chmod -R o= $PKG_PREFIX/firebird
+
+# Now fix up the mess.
+
+# fix up directories
+for i in `find $PKG_PREFIX/firebird -print`
+do
+ FileName=$i
+ if [ -d $FileName ]; then
+ chmod u=rwx,go=rx $FileName
+ fi
+done
+
+# make lib ldconfig-compatible
+chown -R root:wheel $PKG_PREFIX/firebird/lib
+
+# make the following read-only
+chmod -R a=r $PKG_PREFIX/firebird/WhatsNew
+for i in `find $PKG_PREFIX/firebird/doc -type f -print`
+do
+ chmod a=r $i
+done
+chmod -R a=r $PKG_PREFIX/firebird/examples/*
+chmod -R a=r $PKG_PREFIX/firebird/include/*
+chmod -R a=r $PKG_PREFIX/firebird/intl/*
+#chmod -R a=r $PKG_PREFIX/firebird/misc/*
+
+chmod -R ug=rx,o= $PKG_PREFIX/firebird/UDF/*
+chmod -R ug=rx,o= $PKG_PREFIX/firebird/intl/fbintl
+chmod -R a=rx $PKG_PREFIX/firebird/lib/*
+
+cd $PKG_PREFIX/firebird/lib
+ln -sf libfbembed.so libgds.so
+ln -sf libfbembed.so.1 libgds.so.1
+
+cd $PKG_PREFIX/firebird/bin
+for i in `ls`
+do
+ chmod ug=rx,o= $i
+done
+
+chmod a=rx isql qli
+
+# SUID is needed for running server programs.
+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 $PKG_PREFIX/firebird
+
+# Lock files
+
+for i in isc_init1 isc_lock1 isc_event1
+do
+ FileName=$i.`hostname`
+ touch $FileName
+ chmod uga=rw $FileName
+ chown firebird:firebird $FileName
+done
+
+touch firebird.log
+chown firebird:firebird firebird.log
+chmod ug=rw,o= firebird.log
+chmod a=r firebird.msg README
+chown root:wheel *.sample
+chmod ug=r,o= *.sample
+
+# make databases writable by firebird only
+# local database connections are not a good idea
+chmod ug=rw,o= examples/*.fdb
+chmod ug=rw,o= help/*.fdb
+chmod ug=rw,o= security.fdb
+
+chmod 440 aliases.conf firebird.conf
+chmod 660 security.fdb
+
+# remove any existing gds service
+cp /etc/services /etc/services.old
+cp /etc/inetd.conf /etc/inetd.conf.old
+cat /etc/services |grep -v gds_db >/etc/services.new
+cat /etc/inetd.conf |grep -v gds_db >/etc/inetd.conf.new
+mv /etc/services.new /etc/services
+mv /etc/inetd.conf.new /etc/inetd.conf
+
+# add the gds service and restart inetd
+cat >>/etc/services <<EOF
+gds_db 3050/tcp #InterBase Database Remote Protocol
+EOF
+cat >>/etc/inetd.conf <<EOF
+gds_db stream tcp nowait firebird $PKG_PREFIX/firebird/bin/fb_inet_server fb_inet_server
+EOF
+if [ -f /var/run/inetd.pid ]; then
+ kill -HUP `cat /var/run/inetd.pid`
+fi
+
+# shared lib startup script
+if [ -d $PKG_PREFIX/etc/rc.d ]; then
+ (
+ echo "#!/bin/sh"; echo "[ -d $PKG_PREFIX/firebird/lib ] && /sbin/ldconfig -m $PKG_PREFIX/firebird/lib"
+ ) > $PKG_PREFIX/etc/rc.d/000.firebird.sh
+ chmod a=rx $PKG_PREFIX/etc/rc.d/000.firebird.sh
+fi
+;;
+
+esac