aboutsummaryrefslogtreecommitdiff
path: root/databases/firebird
diff options
context:
space:
mode:
authorAlex Dupre <ale@FreeBSD.org>2004-01-13 16:11:11 +0000
committerAlex Dupre <ale@FreeBSD.org>2004-01-13 16:11:11 +0000
commitf18b6b01304df83941f96b515932897cc118a304 (patch)
tree7ede63f375b7fc26d2d877a8b79c4cd7948d2e41 /databases/firebird
parent78300b9f901470a2e8b20d861bbbe2ac524c70b6 (diff)
downloadports-f18b6b01304df83941f96b515932897cc118a304.tar.gz
ports-f18b6b01304df83941f96b515932897cc118a304.zip
Notes
Diffstat (limited to 'databases/firebird')
-rw-r--r--databases/firebird/Makefile20
-rw-r--r--databases/firebird/distinfo2
-rw-r--r--databases/firebird/files/RELNOTES78
-rw-r--r--databases/firebird/files/patch-autogen.sh26
-rw-r--r--databases/firebird/files/patch-src::common::classes::locks.h49
-rw-r--r--databases/firebird/files/patch-src::install::arch-specific::freebsd::install.sh.in92
-rw-r--r--databases/firebird/pkg-descr7
-rw-r--r--databases/firebird/pkg-install171
-rw-r--r--databases/firebird/pkg-message2
-rw-r--r--databases/firebird/pkg-plist15
10 files changed, 340 insertions, 122 deletions
diff --git a/databases/firebird/Makefile b/databases/firebird/Makefile
index ea2bd5277fb1..14b119a04184 100644
--- a/databases/firebird/Makefile
+++ b/databases/firebird/Makefile
@@ -6,11 +6,12 @@
#
PORTNAME= firebird
-PORTVERSION= 1.5.r7
+PORTVERSION= 1.5.r8
CATEGORIES= databases
-MASTER_SITES= http://www.aims.net.au/chris/firebird/
+MASTER_SITES= ${MASTER_SITE_SOURCEFORGE} \
+ http://www.aims.net.au/chris/firebird/
MASTER_SITE_SUBDIR=firebird
-DISTNAME= firebird15-rc7
+DISTNAME= firebird15-rc8
MAINTAINER= chris@e-easy.com.au
COMMENT= The open-source InterBase(tm) 6.0 spin-off (Classic version)
@@ -26,7 +27,6 @@ USE_GCC= 3.3
LD= gcc
CONFLICTS= firebird-devel-*
-NOPACKAGE= pkg-install not finished
WRKSRC= ${WRKDIR}/firebird15
INSTALLS_SHLIB= yes
@@ -57,13 +57,21 @@ patch-libtool:
@${DO_NADA}
do-configure:
- @(cd ${WRKSRC} && ${ENV} CC=${CC} CXX=${CXX} MAKE=${GMAKE} ./autogen.sh --prefix=${PREFIX}/firebird --with-lock-manager --with-editline)
+ @(cd ${WRKSRC} && ${SETENV} CC=${CC} CXX=${CXX} MAKE=${GMAKE} \
+ LIBTOOL=libtool13 LIBTOOLIZE=libtoolize13 ./autogen.sh \
+ --prefix=${PREFIX}/firebird --with-lock-manager --with-editline)
do-build:
@( \
${SED} 's|%%PREFIX%%|${PREFIX}|g' ${MSG_FILE} > ${PKGMESSAGE}; \
cd ${WRKSRC}; \
- ${ENV} CC=${CC} CXX=${CXX} ${GMAKE} all; \
+ ${SETENV} CC=${CC} CXX=${CXX} ${GMAKE} all; \
+ )
+
+post-install:
+ @( \
+ ${INSTALL_DATA} ${FILESDIR}/RELNOTES ${PREFIX}/firebird; \
+ ${CAT} ${PKGMESSAGE}; \
)
.include <bsd.port.post.mk>
diff --git a/databases/firebird/distinfo b/databases/firebird/distinfo
index 729aac430f8c..a4df17faba1e 100644
--- a/databases/firebird/distinfo
+++ b/databases/firebird/distinfo
@@ -1 +1 @@
-MD5 (firebird15-rc7.tar.bz2) = f6a3a4afa1f2fdfde9a4348a618c4896
+MD5 (firebird15-rc8.tar.bz2) = cb775b56c0b3067994ec78f15a9e757d
diff --git a/databases/firebird/files/RELNOTES b/databases/firebird/files/RELNOTES
index 607bc697877a..3b45cce72c4b 100644
--- a/databases/firebird/files/RELNOTES
+++ b/databases/firebird/files/RELNOTES
@@ -1,22 +1,8 @@
-Firebird 1.0.2 FreeBSD Release Notes 05-Jan-2003
+Firebird 1.5.0 FreeBSD Release Notes 11-Jan-2004
--------------------------------------
-FB-T6.2.908 Firebird Final Release
-
-Welcome to the FreeBSD Firebird port! Users should note that there
-was a package called `firebird-1.0.tgz' released in mid-August
-2000. Unfortunately, that package was released before Firebird
-version numbering conventions were established, so although the
-version number would suggest that it is newer than the current
-release, it is certainly not. Users of the August 1.0 package
-should upgrade to 0.9_4 or later, which has fixed many bugs and
-security problems, including the recently-discovered back door.
-
- Firebird originally required a running copy of Firebird (or
-InterBase) in order to build itself. This port uses a boot kit to
-overcome that, so that it does not require itself to build.
-Unfortunately, the side effect of this is that if you have a lock
-manager running from an already-installed version of Firebird or
-InterBase, this port will not build.
+FB-V1.5.0.4201 Firebird 1.5 Release Candidate 8
+
+ Welcome to the FreeBSD Firebird port!
Firebird is installed SUID with owner and group `firebird'.
This does affect where you can and cannot create databases when
@@ -30,12 +16,12 @@ etc.) gives you the message "semget failed". One surefire way to
do this is to build and install the port. :) If this happens,
make sure that the lock manager is not running and its semaphores
have been removed. The former can be accomplished with 'ps ax
-|grep gds' and 'kill'; the latter with 'ipcs -s' and 'ipcrm -s'.
+|grep fb' and 'kill'; the latter with 'ipcs -s' and 'ipcrm -s'.
For example, after building and installing the port, you will
probably go through something like this:
-# isql /usr/interbase/isc4.gdb
+# isql /usr/local/firebird/security.fdb
Statement failed, SQLCODE = -902
operating system directive semget failed
@@ -62,14 +48,47 @@ try stopping PostgreSQL:
/usr/local/etc/rc.d/pgsql.sh stop
-and see if that helps.
+and see if that helps. Alternatively, increase the value of SEMMNS
+by 48 in your kernel configuration file. This can be found by getting
+the current value with 'sysctl -a | grep semmns'. You can either add
+this to your kernel config, or add the following line to /boot/loader.conf:
+
+ kern.ipc.semmns=X
+
+where is is the current value plus 48. If this doesn't resolve the issue,
+try adding 48 again.
+
+ Please note that RC8 has changed the libgds.so symlink to point to
+libfbembed.so. This has been done to resolve compatability issues with
+older versions of Firebird. The FreeBSD port of RC7 had libgds.so
+pointing to libfbclient.so. libfbclient.so is a remote access-only
+shared library with threaded support, which requires target applications
+to link with a threaded library such as libc_r.so, libkse.so or libthr.so.
+
+ Super Server support in Firebird 1.5 for FreeBSD is not currently
+available due to the Firebird code using POSIX threads APIs not available
+in FreeBSD 4.x or not yet complete in FreeBSD 5.x. This issue will become
+more important once the scalability issues of Super Server have been
+resolved.
- Super Server support has recently been added. However, there is
-anecdotal evidence that it is not as reliable nor as scalable as the
-Classic Server version. For this reason, I have not included a
-start up method for Super Server. For those that are interested,
-traversing to /usr/interbase/misc will find the startup scripts for
-the various flavours of Linux.
+ This installation has already inserted the necessary line to
+/etc/inetd.conf so that you can connect to Firebird across the network.
+However you may need to add the remote host to /etc/hosts.equiv. For
+example, to allow the local machine to make connections to Firebird
+using TCP, the following command needs running:
+
+ echo localhost >> /etc/hosts.equiv
+
+Please note that adding machines to /etc/hosts.equiv can reduce the
+security of your system. If in doubt, try connecting to Firebird with
+a username and password already defined in security.fdb. For example:
+
+gsec
+> add myuser -pass mypass
+> quit
+isql -u myuser -p mypass localhost:/usr/local/firebird/examples/employee.fdb
+
+This should reduce the need for hosts defined in /etc/hosts.equiv.
Complete documentation for InterBase(tm) is available (free of
charge) from http://www.interbase.com/ in PDF format. While
@@ -82,5 +101,8 @@ and InterBase can be found at the following:
http://www.interbase2000.org/
http://www.firebirdsql.org/
+ Please also see the doc directory in the Firebird package for
+documentation specific to Firebird.
+
Chris Knight
-<chris@aims.com.au>
+<chris@aims.net.au>
diff --git a/databases/firebird/files/patch-autogen.sh b/databases/firebird/files/patch-autogen.sh
deleted file mode 100644
index 9b7c52d77778..000000000000
--- a/databases/firebird/files/patch-autogen.sh
+++ /dev/null
@@ -1,26 +0,0 @@
---- autogen.sh.orig Fri Apr 18 04:41:28 2003
-+++ autogen.sh Sun Aug 24 18:39:45 2003
-@@ -20,7 +20,7 @@
- ;;
- esac
-
--VER=`libtool --version|grep ' libtool)'|sed 's/.*) \([0-9][0-9.]*\) .*/\1/'`
-+VER=`libtool13 --version|grep ' libtool)'|sed 's/.*) \([0-9][0-9.]*\) .*/\1/'`
- case "$VER" in
- 0* | 1\.[0-2] | 1\.[0-2][a-z]* | \
- 1\.3\.[0-2] | 1\.3\.[0-2][a-z]* )
-@@ -50,12 +50,12 @@
-
- # Generate configure from configure.in
- echo "Running libtoolize ..."
--LIBTOOL_M4=`libtoolize --copy --force --dry-run|grep 'You should add the contents of'|sed "s,^[^/]*\(/[^']*\).*$,\1,"`
-+LIBTOOL_M4=`libtoolize13 --copy --force --dry-run|grep 'You should add the contents of'|sed "s,^[^/]*\(/[^']*\).*$,\1,"`
- if test "x$LIBTOOL_M4" != "x"; then
- rm -f aclocal.m4
- cp $LIBTOOL_M4 aclocal.m4
- fi
--libtoolize --copy --force || exit 1
-+libtoolize13 --copy --force || exit 1
-
- echo "Running autoconf ..."
- autoconf || exit 1
diff --git a/databases/firebird/files/patch-src::common::classes::locks.h b/databases/firebird/files/patch-src::common::classes::locks.h
deleted file mode 100644
index e2948dd4bbd2..000000000000
--- a/databases/firebird/files/patch-src::common::classes::locks.h
+++ /dev/null
@@ -1,49 +0,0 @@
---- src/common/classes/locks.h.orig Sun Aug 17 14:56:47 2003
-+++ src/common/classes/locks.h Wed Nov 12 11:12:25 2003
-@@ -77,7 +77,7 @@
-
- /* Process-local spinlock. Used to manage memory heaps in threaded environment. */
- // Pthreads version of the class
--#ifndef SOLARIS
-+#if !defined(SOLARIS) && !defined(DARWIN) && !defined(FREEBSD)
- class Spinlock {
- private:
- pthread_spinlock_t spinlock;
-@@ -100,6 +100,7 @@
- }
- };
- #else
-+#ifdef SOLARIS
- // Who knows why Solaris 2.6 have not THIS funny spins?
- //The next code is not comlpeted but let me compile //Konstantin
- class Spinlock {
-@@ -123,6 +124,29 @@
- system_call_failed::raise();
- }
- };
-+#else // DARWIN and FREEBSD
-+class Spinlock {
-+private:
-+ pthread_mutex_t mlock;
-+public:
-+ Spinlock() {
-+ if (pthread_mutex_init(&mlock, 0))
-+ system_call_failed::raise();
-+ }
-+ ~Spinlock() {
-+ if (pthread_mutex_destroy(&mlock))
-+ system_call_failed::raise();
-+ }
-+ void enter() {
-+ if (pthread_mutex_lock(&mlock))
-+ system_call_failed::raise();
-+ }
-+ void leave() {
-+ if (pthread_mutex_unlock(&mlock))
-+ system_call_failed::raise();
-+ }
-+};
-+#endif
-
- #endif
- #endif
diff --git a/databases/firebird/files/patch-src::install::arch-specific::freebsd::install.sh.in b/databases/firebird/files/patch-src::install::arch-specific::freebsd::install.sh.in
new file mode 100644
index 000000000000..d0c86385ae63
--- /dev/null
+++ b/databases/firebird/files/patch-src::install::arch-specific::freebsd::install.sh.in
@@ -0,0 +1,92 @@
+--- src/install/arch-specific/freebsd/install.sh.in.orig Thu Nov 6 23:23:29 2003
++++ src/install/arch-specific/freebsd/install.sh.in Tue Jan 13 17:36:16 2004
+@@ -59,7 +59,7 @@
+ if [ -d $InstallPrefix/firebird.old ]; then
+ rm -rf $InstallPrefix/firebird.old
+ fi
+- mv $InstallFirebirdPrefix $InstallPrefix/firebird.old
++ cp -Rp $InstallFirebirdPrefix $InstallPrefix/firebird.old
+ fi
+
+ if [ `id -u` -ne 0 ]; then
+@@ -162,7 +162,7 @@
+ #cp -r $BuiltFBDir/doc $DestDir
+
+ cp $BuiltFBDir/firebird.msg $DestDir/firebird.msg
+-cp $BuiltFBDir/security.fdb $DestDir/security.fdb
++cp $BuiltFBDir/security.fdb $DestDir/security.fdb.sample
+
+
+ #cp $BuiltFBDir/include/gds.f $DestDir/include
+@@ -190,19 +190,19 @@
+ cp $BuildRootDir/doc/WhatsNew $DestDir/WhatsNew
+ cp $BuildRootDir/doc/README.user $DestDir/README
+
+-cp $BuiltFBDir/misc/firebird.conf $DestDir/firebird.conf
++cp $BuiltFBDir/misc/firebird.conf $DestDir/firebird.conf.sample
+
+-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
++echo "#" >> $DestDir/aliases.conf.sample
++echo "# List of known database aliases" >> $DestDir/aliases.conf.sample
++echo "# ------------------------------" >> $DestDir/aliases.conf.sample
++echo "#" >> $DestDir/aliases.conf.sample
++echo "# Examples:" >> $DestDir/aliases.conf.sample
++echo "#" >> $DestDir/aliases.conf.sample
++echo "# employee = $DestDir/examples/employee.fdb" >> $DestDir/aliases.conf.sample
++echo "#" >> $DestDir/aliases.conf.sample
+
+
+-chown -R firebird:firebird $InstallFirebirdPrefix
++chown -R $fbUID:$fbGID $InstallFirebirdPrefix
+ chmod -R o= $InstallFirebirdPrefix
+
+ # Now fix up the mess.
+@@ -235,8 +235,8 @@
+ chmod -R a=rx $InstallFirebirdPrefix/lib/*
+
+ cd $InstallFirebirdPrefix/lib
+-ln -sf libfbclient.so libgds.so
+-ln -sf libfbclient.so.1 libgds.so.1
++ln -sf libfbembed.so libgds.so
++ln -sf libfbembed.so.1 libgds.so.1
+
+ cd $InstallFirebirdPrefix/bin
+ for i in `ls`
+@@ -265,19 +265,25 @@
+ FileName=$i.`hostname`
+ touch $FileName
+ chmod ug=rw,o= $FileName
+- chown firebird:firebird $FileName
++ chown $fbUID:$fbGID $FileName
+ done
+
+-touch firebird.log aliases.conf firebird.conf
+-chown firebird:firebird firebird.log
++touch firebird.log
++chown $fbUID:$fbGID firebird.log
+ chmod ug=rw,o= firebird.log
+-chmod a=r firebird.msg aliases.conf firebird.conf README
++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
++
++# install the samples if they don't exist
++[ -f aliases.conf ] || install -o $fbUID -g $fbGID -m 440 aliases.conf.sample aliases.conf
++[ -f firebird.conf ] || install -o $fbUID -g $fbGID -m 440 firebird.conf.sample firebird.conf
++[ -f security.fdb ] || install -o $fbUID -g $fbGID -m 660 security.fdb.sample security.fdb
+
+ # remove any existing gds service
+ cp /etc/services /etc/services.old
diff --git a/databases/firebird/pkg-descr b/databases/firebird/pkg-descr
index 7d4f34da338d..dbeba43f543f 100644
--- a/databases/firebird/pkg-descr
+++ b/databases/firebird/pkg-descr
@@ -6,9 +6,6 @@ some very big players use it worldwide. Inprise has open-sourced
InterBase 6.0, and a lively bunch of folks has charged themselves
with seeing that it lives on through the Firebird project.
-Note that as of Firebird 0.9_4, the locksmith back door has
-been closed.
-
For more information on Firebird and InterBase, see:
WWW: http://sourceforge.net/projects/firebird/
@@ -16,7 +13,3 @@ WWW: http://www.ibphoenix.com/
WWW: http://www.interbase2000.org/
WWW: http://www.interbase.com/
WWW: http://www.firebirdsql.org/
-
-For more information on the locksmith back door, see:
-
-WWW: https://www.kb.cert.org/vuls/id/247371
diff --git a/databases/firebird/pkg-install b/databases/firebird/pkg-install
new file mode 100644
index 000000000000..6bcb9adcb3f7
--- /dev/null
+++ b/databases/firebird/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
diff --git a/databases/firebird/pkg-message b/databases/firebird/pkg-message
index 6f312bfec254..3a3f40ae3ec4 100644
--- a/databases/firebird/pkg-message
+++ b/databases/firebird/pkg-message
@@ -2,7 +2,7 @@
---------------------------------------------------------
Firebird is now installed. A symbolic link from
/usr/interbase -> %%PREFIX%%/firebird may be needed
-for compatibility with existing programs that use
+for compatibility with existing programs that use
Firebird.
The symbolic link can be created with:
diff --git a/databases/firebird/pkg-plist b/databases/firebird/pkg-plist
index 3e48de98e917..82ddc7741e6c 100644
--- a/databases/firebird/pkg-plist
+++ b/databases/firebird/pkg-plist
@@ -1,11 +1,14 @@
etc/rc.d/000.firebird.sh
firebird/README
+firebird/RELNOTES
firebird/UDF/fbudf.so
firebird/UDF/fbudf.sql
firebird/UDF/ib_udf.so
firebird/UDF/ib_udf.sql
firebird/WhatsNew
-firebird/aliases.conf
+@unexec if cmp -s %D/firebird/aliases.conf %D/firebird/aliases.conf.sample; then rm -f %D/firebird/aliases.conf; fi
+firebird/aliases.conf.sample
+@exec [ -f %B/aliases.conf ] || cp %B/%f %B/aliases.conf
firebird/bin/fb_inet_server
firebird/bin/fb_lock_mgr
firebird/bin/fb_lock_print
@@ -86,8 +89,10 @@ firebird/examples/stat8.e
firebird/examples/stat9.e
firebird/examples/udf.sql
firebird/examples/udflib.c
-firebird/firebird.conf
-@unexec rm -f %D/firebird/firebird.log
+@unexec if cmp -s %D/firebird/firebird.conf %D/firebird/firebird.conf.sample; then rm -f %D/firebird/firebird.conf; fi
+firebird/firebird.conf.sample
+@exec [ -f %B/firebird.conf ] || cp %B/%f %B/firebird.conf
+@unexec [ -s %D/firebird/firebird.log ] || rm -f %D/firebird/firebird.log
firebird/firebird.msg
firebird/help/help.fdb
firebird/include/blr.h
@@ -109,7 +114,9 @@ firebird/lib/libfbembed.so.1.5.0
firebird/lib/libgds.so
firebird/lib/libgds.so.1
firebird/lib/libib_util.so
-firebird/security.fdb
+@unexec if cmp -s %D/firebird/security.fdb %D/firebird/security.fdb.sample; then rm -f %D/firebird/security.fdb; fi
+firebird/security.fdb.sample
+@exec [ -f %B/security.fdb ] || cp %B/%f %B/security.fdb
@dirrm firebird/UDF
@dirrm firebird/bin
@dirrm firebird/doc/sql.extensions