aboutsummaryrefslogtreecommitdiff
path: root/databases/firebird25-server
diff options
context:
space:
mode:
authorJose Alonso Cardenas Marquez <acm@FreeBSD.org>2010-12-20 08:48:54 +0000
committerJose Alonso Cardenas Marquez <acm@FreeBSD.org>2010-12-20 08:48:54 +0000
commit889c99903996bea265f44e95327fbd9f3ea2d3c2 (patch)
tree37f6c971c2214cd62fe896b7b0f2d87a6bb7304c /databases/firebird25-server
parent71996850bbc46b90097f091b5c2bfdb8d13d8007 (diff)
downloadports-889c99903996bea265f44e95327fbd9f3ea2d3c2.tar.gz
ports-889c99903996bea265f44e95327fbd9f3ea2d3c2.zip
Notes
Diffstat (limited to 'databases/firebird25-server')
-rw-r--r--databases/firebird25-server/Makefile226
-rw-r--r--databases/firebird25-server/distinfo2
-rw-r--r--databases/firebird25-server/files/firebird.in62
-rw-r--r--databases/firebird25-server/files/patch-builds-install-misc_firebird.conf.in20
-rw-r--r--databases/firebird25-server/files/patch-builds-posix_make.defaults31
-rw-r--r--databases/firebird25-server/files/patch-src-jrd_isc_sync.cpp11
-rw-r--r--databases/firebird25-server/files/pkg-install.in71
-rw-r--r--databases/firebird25-server/files/pkg-message.in31
-rw-r--r--databases/firebird25-server/pkg-descr12
-rw-r--r--databases/firebird25-server/pkg-plist41
-rw-r--r--databases/firebird25-server/pkg-plist.client28
11 files changed, 535 insertions, 0 deletions
diff --git a/databases/firebird25-server/Makefile b/databases/firebird25-server/Makefile
new file mode 100644
index 000000000000..3a92ad9ea2dd
--- /dev/null
+++ b/databases/firebird25-server/Makefile
@@ -0,0 +1,226 @@
+# New ports collection makefile for: firebird25-server
+# Date created: 2010-12-20
+# Whom: Alonso Cárdenas Márquez <acm@FreeBSD.org>
+#
+# $FreeBSD$
+#
+
+PORTNAME= firebird
+PORTVERSION= 2.5.0
+PORTREVISION?= 0
+CATEGORIES?= databases
+MASTER_SITES= SF/${PORTNAME}/${PORTNAME}/${PORTVERSION}-Release/
+PKGNAMESUFFIX?= -server
+DISTNAME= ${PORTNAME:S/f/F/}-${PORTVERSION}.26074-0
+DIST_SUBDIR= ${PORTNAME}
+
+MAINTAINER= acm@FreeBSD.org
+COMMENT?= Firebird-2 relational database (server)
+
+LIB_DEPENDS= icuuc:${PORTSDIR}/devel/icu
+
+LATEST_LINK= ${PORTNAME}25${PKGNAMESUFFIX}
+
+USE_BISON= build
+USE_BZIP2= yes
+USE_GMAKE= yes
+GNU_CONFIGURE= yes
+MAKE_JOBS_UNSAFE= yes
+
+CONFIGURE_ARGS= --with-system-editline \
+ --with-system-icu \
+ --prefix=${LOCALSTATEDIR} \
+ --exec-prefix=${PREFIX} \
+ --with-fbconf=${CONFDIR} \
+ --with-fbglock=${LOCALSTATEDIR} \
+ --with-fbhelp=${LOCALSTATEDIR}/help \
+ --with-fbintl=${LIBEXECDIR}/intl \
+ --with-fblog=${LOCALSTATEDIR} \
+ --with-fbmsg=${DATADIR} \
+ --with-fbplugins=${LIBEXECDIR}/plugins \
+ --with-fbsbin=${PREFIX}/sbin \
+ --with-fbsecure-db=${LOCALSTATEDIR} \
+ --with-fbudf=${LIBEXECDIR}/UDF
+CONFIGURE_ENV+= CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" \
+ PTHREAD_CFLAGS="${PTHREAD_CFLAGS}" \
+ PTHREAD_LIBS="${PTHREAD_LIBS}"
+
+CFLAGS+= -I${LOCALBASE}/include
+LDFLAGS+= -L${LOCALBASE}/lib
+
+LOCALSTATEDIR= /var/db/firebird
+CONFDIR= ${PREFIX}/etc/firebird
+LIBEXECDIR= ${PREFIX}/libexec/firebird
+PLIST_SUB= FIREBIRD_VERSION=${PORTVERSION} \
+ LOCALSTATEDIR="var/db/firebird" CONFDIR="etc/firebird"
+
+# Don't use ld for linking, use gcc
+LD= ${CC}
+
+# Don't strip binary files
+STRIP=
+
+ONLY_FOR_ARCHS= i386 amd64
+CONFLICTS+= firebird-client-2.0* firebird-server-2.0* \
+ firebird-client-2.1* firebird-server-2.1*
+
+INSTALL_FB= ${INSTALL} ${COPY} -g firebird
+IPCRM_CMD= /usr/bin/ipcrm
+IPCS_CMD= /usr/bin/ipcs
+
+IPCCHECK!= ${IPCRM_CMD} -q 0 2>&1 || true
+.if ${IPCCHECK:Mimplemented}
+IGNORE= your system does not support sysvipc
+.endif
+
+.if !defined(CLIENT_ONLY)
+# Server part stuff
+LIB_DEPENDS+= fbembed.2:${PORTSDIR}/databases/firebird25-client
+
+ALL_TARGET= firebird_embedded
+
+USE_RC_SUBR= firebird
+SUB_FILES= pkg-install pkg-message
+
+UTIL_SBIN= fb_inet_server fb_lock_print fb_smp_server
+UTIL_BIN= fbguard fbstat fbsvcmgr fbtracemgr gbak gdef gfix gsec gsplit \
+ nbackup
+UDF_SO= ib_udf.so fbudf.so
+UDF_SQL= src/extlib/ib_udf2.sql src/extlib/fbudf/fbudf.sql
+.else
+# Client part stuff
+ALL_TARGET= firebird_basic libfbembed libfbclient embed_isql embed_gpre \
+ embed_gdef embed_qli extlib
+
+USE_LDCONFIG= yes
+CLIENT_BIN= gpre isql-fb qli
+
+.if !defined(NOPORTDOCS)
+PORTDOCS= *
+FB_DOCS_FILES= WhatsNew README.* Firebird* ReleaseNotes.pdf ambiguity.txt \
+ ods11-index-structure.html
+FB_DOCS_DIRS= sql.extensions license upgrade
+.endif
+.endif
+
+MAKE_ENV+= FIREBIRD_TMP="${WRKDIR}" FIREBIRD_LOCK="${WRKDIR}"
+
+post-extract:
+ @${RM} -rf ${WRKSRC}/extern/icu
+
+post-patch:
+ ${FIND} ${WRKSRC} -name "*.sh" -exec ${CHMOD} +x {} \+
+ ${REINPLACE_CMD} -e \
+ 's|/isql|/isql-fb|g' -e \
+ 's|/gstat|/fbstat|g' ${WRKSRC}/builds/posix/make.defaults
+
+.include <bsd.port.pre.mk>
+
+.if ${ARCH} == "amd64"
+CFLAGS+= -DAMD64
+.endif
+
+.if !defined(CLIENT_ONLY)
+pre-su-install:
+ @${SETENV} PKG_PREFIX="${PREFIX}" ${SH} ${PKGINSTALL} ${PORTNAME} PRE-INSTALL
+
+post-install:
+ @${SETENV} PKG_PREFIX="${PREFIX}" ${SH} ${PKGINSTALL} ${PORTNAME} POST-INSTALL
+ @${CAT} ${PKGMESSAGE}
+.endif
+
+.ifndef WITHOUT_IPC_CLEANUP
+pre-build:
+.ifndef PACKAGE_BUILDING
+ @if [ `${ID} -u` -eq 0 ]; then \
+ ${ECHO_MSG} "==> Please do not build ${PORTNAME} as 'root' because this may cause conflicts with SysV semaphores of running services."; exit 1; fi
+.endif
+ ${MAKE} -C ${WRKSRC}/extern/btyacc
+ [ -f ${WRKDIR}/ipcs.pre.build ] || ${IPCS_CMD} -s | ${TAIL} -n +3 | \
+ ${GREP} -F `${ID} -un` | ${CAT} > ${WRKDIR}/ipcs.pre.build
+
+post-build:
+ ${IPCS_CMD} -s | ${TAIL} -n +3 | ${GREP} -F `${ID} -un` | ${CAT} > ${WRKDIR}/ipcs.post.build
+ ${DIFF} -n ${WRKDIR}/ipcs.pre.build ${WRKDIR}/ipcs.post.build | \
+ ${TAIL} -n +2 | ${SED} -E 's/^s +([0-9]+).*$$/\/usr\/bin\/ipcrm -s \1/' > ${WRKDIR}/ipcrm.sh
+ ${SH} ${WRKDIR}/ipcrm.sh
+.endif
+
+do-install:
+.if !defined(CLIENT_ONLY)
+
+ ${INSTALL_PROGRAM} ${UTIL_BIN:S!^!${WRKSRC}/gen/firebird/bin/!} ${PREFIX}/bin
+ ${INSTALL_PROGRAM} ${UTIL_SBIN:S!^!${WRKSRC}/gen/firebird/bin/!} ${PREFIX}/sbin
+
+ @${MKDIR} ${CONFDIR}
+ ${INSTALL_DATA} ${WRKSRC}/gen/install/misc/aliases.conf ${CONFDIR}/aliases.conf.sample
+.if !exists(${CONFDIR}/aliases.conf)
+ ${INSTALL_DATA} ${WRKSRC}/gen/install/misc/aliases.conf ${CONFDIR}/aliases.conf
+.endif
+ ${INSTALL_DATA} ${WRKSRC}/gen/install/misc/fbintl.conf ${CONFDIR}/fbintl.conf
+ ${INSTALL_DATA} ${WRKSRC}/gen/install/misc/fbtrace.conf ${CONFDIR}/fbtrace.conf
+
+ ${MKDIR} ${LIBEXECDIR}/udf ${LOCALSTATEDIR}/help ${LIBEXECDIR}/intl \
+ ${LIBEXECDIR}/plugins
+
+ ${CHOWN} -R firebird:firebird ${LOCALSTATEDIR}
+
+ ${INSTALL_FB} -m 0555 ${UDF_SO:S!^!${WRKSRC}/gen/firebird/UDF/!} ${LIBEXECDIR}/udf
+ ${INSTALL_FB} -m 0444 ${UDF_SQL:S!^!${WRKSRC}/!} ${LIBEXECDIR}/udf
+ ${INSTALL_FB} -m 0555 ${WRKSRC}/gen/firebird/plugins/libfbtrace.so ${LIBEXECDIR}/plugins
+
+.if !exists(${LOCALSTATEDIR}/security2.fdb)
+ ${INSTALL_FB} -m 0660 -o firebird ${WRKSRC}/gen/firebird/security2.fdb ${LOCALSTATEDIR}/security2.fdb
+.endif
+ ${INSTALL_FB} -m 0660 -o firebird ${WRKSRC}/gen/firebird/security2.fdb ${LOCALSTATEDIR}/security2.fdb.sample
+
+ ${INSTALL_FB} -m 0440 ${WRKSRC}/gen/firebird/help/help.fdb ${LOCALSTATEDIR}/help
+
+ ${INSTALL_FB} -m 0555 ${WRKSRC}/gen/firebird/intl/libfbintl.so ${LIBEXECDIR}/intl/fbintl
+.else
+# defined CLIENT_ONLY
+ ${INSTALL_PROGRAM} ${CLIENT_BIN:S!^!${WRKSRC}/gen/firebird/bin/!} ${PREFIX}/bin
+
+ ${SED} -e "s=%%PREFIX%%=${PREFIX}=g" ${WRKSRC}/gen/install/misc/firebird.conf > ${WRKDIR}/firebird.conf
+
+ @${MKDIR} ${CONFDIR}
+.if !exists(${CONFDIR}/firebird.conf)
+ ${INSTALL_DATA} ${WRKDIR}/firebird.conf ${CONFDIR}
+.endif
+ ${INSTALL_DATA} ${WRKDIR}/firebird.conf ${CONFDIR}/firebird.conf.sample
+
+ ${INSTALL_DATA} ${WRKSRC}/gen/firebird/lib/libib_util.so \
+ ${WRKSRC}/gen/firebird/lib/libfbclient.so.${PORTVERSION} \
+ ${WRKSRC}/gen/firebird/lib/libfbembed.so.${PORTVERSION} \
+ ${PREFIX}/lib
+
+ ${LN} -fs libfbclient.so.${PORTVERSION} ${PREFIX}/lib/libfbclient.so.2.5
+ ${LN} -fs libfbclient.so.${PORTVERSION} ${PREFIX}/lib/libfbclient.so.2
+ ${LN} -fs libfbclient.so.${PORTVERSION} ${PREFIX}/lib/libfbclient.so
+
+ ${LN} -fs libfbembed.so.${PORTVERSION} ${PREFIX}/lib/libfbembed.so.2.5
+ ${LN} -fs libfbembed.so.${PORTVERSION} ${PREFIX}/lib/libfbembed.so.2
+ ${LN} -fs libfbembed.so.${PORTVERSION} ${PREFIX}/lib/libfbembed.so
+
+ ${LN} -fs libfbembed.so.${PORTVERSION} ${PREFIX}/lib/libgds.so.2.5
+ ${LN} -fs libfbembed.so.${PORTVERSION} ${PREFIX}/lib/libgds.so.2
+ ${LN} -fs libfbembed.so.${PORTVERSION} ${PREFIX}/lib/libgds.so
+
+ @${MKDIR} ${PREFIX}/include
+ ${INSTALL_DATA} ${WRKSRC}/gen/firebird/include/*.h ${PREFIX}/include
+
+ @${MKDIR} ${DATADIR}
+ ${INSTALL_DATA} ${WRKSRC}/gen/firebird/*.msg ${DATADIR}
+
+.if !defined(NOPORTDOCS)
+ @${ECHO_MSG} "===> Installing documentation for ${PKGNAME}"
+ @${MKDIR} ${FB_DOCS_DIRS:S!^!${DOCSDIR}/!}
+ @${INSTALL_DATA} ${FB_DOCS_FILES:S!^!${WRKSRC}/doc/!} ${DOCSDIR}
+ @${LN} -sf ${DOCSDIR}/README.user ${DOCSDIR}/README
+ @${INSTALL_DATA} ${WRKSRC}/doc/sql.extensions/* ${DOCSDIR}/sql.extensions
+ @${INSTALL_DATA} ${WRKSRC}/doc/license/* ${DOCSDIR}/license
+ @${INSTALL_DATA} ${WRKSRC}/src/misc/upgrade/v2/* ${DOCSDIR}/upgrade
+.endif
+.endif
+
+.include <bsd.port.post.mk>
diff --git a/databases/firebird25-server/distinfo b/databases/firebird25-server/distinfo
new file mode 100644
index 000000000000..50c1f402e0c1
--- /dev/null
+++ b/databases/firebird25-server/distinfo
@@ -0,0 +1,2 @@
+SHA256 (firebird/Firebird-2.5.0.26074-0.tar.bz2) = b9f1982c3c9a0571508d177f1ad7459a6e2d598fc07f0985bce491b93d497053
+SIZE (firebird/Firebird-2.5.0.26074-0.tar.bz2) = 13579819
diff --git a/databases/firebird25-server/files/firebird.in b/databases/firebird25-server/files/firebird.in
new file mode 100644
index 000000000000..ef97db4252d3
--- /dev/null
+++ b/databases/firebird25-server/files/firebird.in
@@ -0,0 +1,62 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+# PROVIDE: firebird
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+#
+# Add the following line to /etc/rc.conf to enable Firebird Database:
+#
+# firebird_enable: Set it to "YES" to enable firebird.
+# Default is "NO".
+# firebird_flags: Set options to run fbguard.
+# Default is "-daemon".
+# firebird_pidfile: Set full path to pid file.
+# Default is "/var/run/firebird.pid".
+#
+
+. /etc/rc.subr
+
+name=firebird
+rcvar=`set_rcvar`
+
+load_rc_config $name
+
+firebird_enable=${firebird_enable:-"NO"}
+firebird_flags=${firebird_flags:-"-daemon"}
+firebird_pidfile=${firebird_pidfile:-"/var/run/${name}.pid"}
+firebird_user=firebird
+
+command_args="${firebird_flags}"
+command=%%PREFIX%%/bin/fbguard
+pidfile=${firebird_pidfile}
+start_precmd="start_precmd"
+start_postcmd="start_postcmd"
+stop_postcmd=stop_postcmd
+reload_postcmd=reload_postcmd
+
+start_precmd()
+{
+ touch ${firebird_pidfile}
+ chown "${firebird_user}:wheel" ${firebird_pidfile} ||
+ err 1 "Cannot chown ${firebird_pidfile}"
+}
+
+start_postcmd()
+{
+ pgrep -u ${firebird_user} fbguard > ${firebird_pidfile}
+}
+
+stop_postcmd()
+{
+ rm -f ${pidfile}
+}
+
+reload_postcmd()
+{
+ rm -f ${pidfile}
+ run_rc_command start
+}
+
+run_rc_command "$1"
diff --git a/databases/firebird25-server/files/patch-builds-install-misc_firebird.conf.in b/databases/firebird25-server/files/patch-builds-install-misc_firebird.conf.in
new file mode 100644
index 000000000000..267509f7ec70
--- /dev/null
+++ b/databases/firebird25-server/files/patch-builds-install-misc_firebird.conf.in
@@ -0,0 +1,20 @@
+--- builds/install/misc/firebird.conf.in Tue Aug 15 22:38:52 2006
++++ builds/install/misc/firebird.conf.in Tue Aug 15 22:39:24 2006
+@@ -60,7 +60,7 @@
+ #
+ # Type: string
+ #
+-#RootDirectory =
++#RootDirectory = /var/db/firebird
+
+
+ # ----------------------------
+@@ -125,7 +125,7 @@
+ #
+ # Type: string (special format)
+ #
+-#UdfAccess = Restrict UDF
++UdfAccess = Restrict %%PREFIX%%/libexec/firebird/udf
+
+
+ # ----------------------------
diff --git a/databases/firebird25-server/files/patch-builds-posix_make.defaults b/databases/firebird25-server/files/patch-builds-posix_make.defaults
new file mode 100644
index 000000000000..3ff86f6392c1
--- /dev/null
+++ b/databases/firebird25-server/files/patch-builds-posix_make.defaults
@@ -0,0 +1,31 @@
+--- builds/posix/make.defaults 2010-09-08 03:41:23.000000000 -0500
++++ builds/posix/make.defaults 2010-12-18 20:25:29.000000000 -0500
+@@ -127,7 +127,7 @@
+ CHMOD= chmod
+ CHMOD_6= chmod 666
+ CHMOD_7= chmod 777
+-CHMOD_S7= chmod 06777
++CHMOD_S7= chmod 04555
+ MV= mv -f
+ TOUCH= touch
+ CP= cp
+@@ -153,7 +153,7 @@
+ STATICEXE_LINK:= @CXX@ $(GLOB_OPTIONS)
+
+ LINK_LIBS = @LIBS@
+-ICU_LIBS = -licuuc -licudata -licui18n
++ICU_LIBS = `icu-config --ldflags-libsonly` `icu-config --ldflags-searchpath`
+ STATICLINK_LIBS = @LIBS@
+ SO_LINK_LIBS = @LIBS@
+
+@@ -230,10 +230,6 @@
+ endif
+ endif
+
+-LIBICU_SO = $(LIB)/$(LIB_PREFIX)icuuc*.$(SHRLIB_FOREIGN_EXT) \
+- $(LIB)/$(LIB_PREFIX)icudata*.$(SHRLIB_FOREIGN_EXT) \
+- $(LIB)/$(LIB_PREFIX)icui18n*.$(SHRLIB_FOREIGN_EXT)
+-
+ # Shared library name for usage inside of the UDF
+ IbUtilLibraryName = $(LIB_PREFIX)ib_util.$(SHRLIB_EXT)
+ LIBIBUTIL_SO = $(LIB)/$(IbUtilLibraryName)
diff --git a/databases/firebird25-server/files/patch-src-jrd_isc_sync.cpp b/databases/firebird25-server/files/patch-src-jrd_isc_sync.cpp
new file mode 100644
index 000000000000..7825b20d1823
--- /dev/null
+++ b/databases/firebird25-server/files/patch-src-jrd_isc_sync.cpp
@@ -0,0 +1,11 @@
+--- src/jrd/isc_sync.cpp 2010-12-18 21:08:26.000000000 -0500
++++ src/jrd/isc_sync.cpp 2010-12-18 21:09:05.000000000 -0500
+@@ -320,7 +320,7 @@
+ public:
+ const static int N_FILES = 8;
+ const static int N_SETS = 256;
+-#ifdef DEV_BUILD
++#if defined(DEV_BUILD) || defined(FREEBSD)
+ const static int SEM_PER_SET = 4; // force multiple sets allocation
+ #else
+ const static int SEM_PER_SET = 31; // hard limit for some old systems, might set to 32
diff --git a/databases/firebird25-server/files/pkg-install.in b/databases/firebird25-server/files/pkg-install.in
new file mode 100644
index 000000000000..c74821080906
--- /dev/null
+++ b/databases/firebird25-server/files/pkg-install.in
@@ -0,0 +1,71 @@
+#!/bin/sh
+
+# $FreeBSD: /tmp/pcvs/ports/databases/firebird25-server/files/pkg-install.in,v 1.1 2010-12-20 08:48:54 acm Exp $
+
+PATH=/bin:/usr/bin:/usr/sbin
+
+case $2 in
+PRE-INSTALL)
+
+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 /usr/sbin/nologin \
+ -d /nonexistent -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)
+cd /var/db/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 security2.fdb
+
+;;
+
+esac
diff --git a/databases/firebird25-server/files/pkg-message.in b/databases/firebird25-server/files/pkg-message.in
new file mode 100644
index 000000000000..0e743ba376cc
--- /dev/null
+++ b/databases/firebird25-server/files/pkg-message.in
@@ -0,0 +1,31 @@
+###############################################################################
+
+Firebird was installed.
+
+1) Before start the server ensure that the following line exists in /etc/services:
+
+gds_db 3050/tcp #InterBase Database Remote Protocol
+
+2) If you use inetd then add the following line to /etc/inetd.conf
+
+gds_db stream tcp nowait firebird %%PREFIX%%/bin/fb_inet_server fb_inet_server
+
+And finally restart inetd.
+
+3) If you want to use SuperClassic Server then you can add firebird_enable="YES"
+to /etc/rc.conf file.
+
+4) It is STRONGLY recommended that you change the SYSDBA
+password with:
+
+ # gsec -user SYSDBA -pass masterkey
+ GSEC> modify SYSDBA -pw newpassword
+ GSEC> quit
+
+before doing anything serious with Firebird.
+
+5) See documentation in %%DOCSDIR%%/ for more information.
+
+6) Enjoy it ;)
+
+################################################################################
diff --git a/databases/firebird25-server/pkg-descr b/databases/firebird25-server/pkg-descr
new file mode 100644
index 000000000000..ed76025f94b8
--- /dev/null
+++ b/databases/firebird25-server/pkg-descr
@@ -0,0 +1,12 @@
+Firebird is a relational database offering many ANSI SQL-99 features
+that runs on Linux, Windows, and a variety of Unix platforms. Firebird
+offers excellent concurrency, high performance, and powerful language
+support for stored procedures and triggers. It has been used in
+production systems, under a variety of names since 1981.
+
+Firebird is completely free of any registration, licensing or deployment
+fees. It may be deployed freely for use with any third-party software,
+whether commercial or not.
+
+WWW: http://sourceforge.net/projects/firebird/
+WWW: http://www.firebirdsql.org/
diff --git a/databases/firebird25-server/pkg-plist b/databases/firebird25-server/pkg-plist
new file mode 100644
index 000000000000..324b1efec8ba
--- /dev/null
+++ b/databases/firebird25-server/pkg-plist
@@ -0,0 +1,41 @@
+@comment $FreeBSD$
+bin/fbguard
+bin/fbstat
+bin/fbsvcmgr
+bin/fbtracemgr
+bin/gbak
+bin/gdef
+bin/gfix
+bin/gsec
+bin/gsplit
+bin/nbackup
+sbin/fb_inet_server
+sbin/fb_lock_print
+sbin/fb_smp_server
+libexec/firebird/udf/ib_udf.so
+libexec/firebird/udf/fbudf.so
+libexec/firebird/udf/ib_udf2.sql
+libexec/firebird/udf/fbudf.sql
+libexec/firebird/plugins/libfbtrace.so
+libexec/firebird/intl/fbintl
+@unexec (cmp -s %D/%%CONFDIR%%/aliases.conf %D/%%CONFDIR%%/aliases.conf.sample && rm -f %D/%%CONFDIR%%/aliases.conf) || true
+%%CONFDIR%%/aliases.conf.sample
+@exec [ -f %B/aliases.conf ] || cp %B/%f %B/aliases.conf
+%%CONFDIR%%/fbintl.conf
+%%CONFDIR%%/fbtrace.conf
+@dirrmtry %%CONFDIR%%
+@dirrm libexec/firebird/intl
+@dirrm libexec/firebird/plugins
+@dirrm libexec/firebird/udf
+@dirrm libexec/firebird
+@cwd /
+@unexec (cmp -s %D/%%LOCALSTATEDIR%%/security2.fdb %D/%%LOCALSTATEDIR%%/security2.fdb.sample && rm -f %D/%%LOCALSTATEDIR%%/security2.fdb) || true
+%%LOCALSTATEDIR%%/security2.fdb.sample
+@exec [ -f %D/%%LOCALSTATEDIR%%/security2.fdb ] || cp %D/%F %D/%%LOCALSTATEDIR%%/security2.fdb
+%%LOCALSTATEDIR%%/help/help.fdb
+@unexec [ -s %D/%%LOCALSTATEDIR%%/firebird.log ] || rm -f %D/%%LOCALSTATEDIR%%/firebird.log
+@rmtry %%LOCALSTATEDIR%%/isc_event1.`hostname`
+@rmtry %%LOCALSTATEDIR%%/isc_init1.`hostname`
+@rmtry %%LOCALSTATEDIR%%/isc_lock1.`hostname`
+@dirrm %%LOCALSTATEDIR%%/help
+@dirrmtry %%LOCALSTATEDIR%%
diff --git a/databases/firebird25-server/pkg-plist.client b/databases/firebird25-server/pkg-plist.client
new file mode 100644
index 000000000000..97e9e2075607
--- /dev/null
+++ b/databases/firebird25-server/pkg-plist.client
@@ -0,0 +1,28 @@
+@comment $FreeBSD$
+bin/gpre
+bin/isql-fb
+bin/qli
+include/ib_util.h
+include/ibase.h
+include/iberror.h
+include/perf.h
+lib/libfbclient.so
+lib/libfbclient.so.2
+lib/libfbclient.so.2.5
+lib/libfbclient.so.%%FIREBIRD_VERSION%%
+lib/libfbembed.so
+lib/libfbembed.so.2
+lib/libfbembed.so.2.5
+lib/libfbembed.so.%%FIREBIRD_VERSION%%
+lib/libgds.so
+lib/libgds.so.2
+lib/libgds.so.2.5
+lib/libib_util.so
+@unexec if cmp -s %D/%%CONFDIR%%/firebird.conf %D/%%CONFDIR%%/firebird.conf.sample; then rm -f %D/%%CONFDIR%%/firebird.conf; fi
+%%CONFDIR%%/firebird.conf.sample
+@exec [ -f %B/firebird.conf ] || cp %B/%f %B/firebird.conf
+@dirrmtry %%CONFDIR%%
+%%DATADIR%%/de_DE.msg
+%%DATADIR%%/firebird.msg
+%%DATADIR%%/fr_FR.msg
+@dirrm %%DATADIR%%