diff options
author | ale <ale@FreeBSD.org> | 2004-01-14 00:11:11 +0800 |
---|---|---|
committer | ale <ale@FreeBSD.org> | 2004-01-14 00:11:11 +0800 |
commit | 5d93800c372ff76e0f47af7088744b6cb0a3acb2 (patch) | |
tree | fff064e3d4045dfa22c4fe0484c1f038cc899d0f /databases/firebird-client/pkg-install | |
parent | 84b8f2b46782ffbec1e1bc1327d8c98dac9f526a (diff) | |
download | freebsd-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-install | 171 |
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 |