aboutsummaryrefslogtreecommitdiff
path: root/databases/firebird21-server
diff options
context:
space:
mode:
authorJose Alonso Cardenas Marquez <acm@FreeBSD.org>2010-12-20 09:05:05 +0000
committerJose Alonso Cardenas Marquez <acm@FreeBSD.org>2010-12-20 09:05:05 +0000
commit0ec9572a9572c604f67e7b7c6f9004ada9b579d8 (patch)
treefa3457d076f0b13287407cc2597e6ded7da9b838 /databases/firebird21-server
parent1b7843d71710b043e2a4739d39535cd3ba73a9c2 (diff)
downloadports-0ec9572a9572c604f67e7b7c6f9004ada9b579d8.tar.gz
ports-0ec9572a9572c604f67e7b7c6f9004ada9b579d8.zip
- New port: databases/firebird21-server
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/ PR: 152402 Submitted by: Max Kochubey <root at hangover.org.ru>
Notes
Notes: svn path=/head/; revision=266634
Diffstat (limited to 'databases/firebird21-server')
-rw-r--r--databases/firebird21-server/Makefile227
-rw-r--r--databases/firebird21-server/distinfo2
-rw-r--r--databases/firebird21-server/files/aliases.conf.in9
-rw-r--r--databases/firebird21-server/files/icu.m446
-rw-r--r--databases/firebird21-server/files/patch-autogen.sh11
-rw-r--r--databases/firebird21-server/files/patch-builds%install%misc%firebird.conf20
-rw-r--r--databases/firebird21-server/files/patch-builds%posix%Makefile.in.firebird45
-rw-r--r--databases/firebird21-server/files/patch-builds%posix%make.defaults40
-rw-r--r--databases/firebird21-server/files/patch-builds%posix%make.rules13
-rw-r--r--databases/firebird21-server/files/patch-configure.in50
-rw-r--r--databases/firebird21-server/files/patch-src%common%config%config.cpp11
-rw-r--r--databases/firebird21-server/files/patch-src%jrd%db_alias.cpp13
-rw-r--r--databases/firebird21-server/files/patch-src%jrd%gds.cpp11
-rw-r--r--databases/firebird21-server/files/patch-src%jrd%os%config_root.h11
-rw-r--r--databases/firebird21-server/files/patch-src%jrd%plugin_manager.cpp20
-rw-r--r--databases/firebird21-server/files/patch-src%jrd%svc.cpp22
-rw-r--r--databases/firebird21-server/files/patch-src%lock%lock.cpp16
-rw-r--r--databases/firebird21-server/files/patch-src+jrd+IntlManager.cpp11
-rw-r--r--databases/firebird21-server/files/patch-src-common-classes_alloc.h26
-rw-r--r--databases/firebird21-server/files/pkg-install.in71
-rw-r--r--databases/firebird21-server/files/pkg-message.in27
-rw-r--r--databases/firebird21-server/pkg-descr12
-rw-r--r--databases/firebird21-server/pkg-plist35
-rw-r--r--databases/firebird21-server/pkg-plist.client29
24 files changed, 778 insertions, 0 deletions
diff --git a/databases/firebird21-server/Makefile b/databases/firebird21-server/Makefile
new file mode 100644
index 000000000000..93a850d014e4
--- /dev/null
+++ b/databases/firebird21-server/Makefile
@@ -0,0 +1,227 @@
+# New ports collection makefile for: firebird21-server
+# Date created: 2010-11-19
+# Whom: Max Kochubey <root@hangover.org.ru>
+#
+# $FreeBSD$
+#
+
+PORTNAME= firebird
+PORTVERSION= 2.1.3
+PORTREVISION?= 0
+CATEGORIES?= databases
+MASTER_SITES= SF/${PORTNAME}/${PORTNAME}/${PORTVERSION}-Release/
+PKGNAMESUFFIX?= -server
+DISTNAME= ${PORTNAME:S/f/F/}-${PORTVERSION}.18185-0
+DIST_SUBDIR= ${PORTNAME}
+
+MAINTAINER= acm@FreeBSD.org
+COMMENT?= Firebird-2 relational database (server)
+
+LIB_DEPENDS= icuuc:${PORTSDIR}/devel/icu
+
+LATEST_LINK= ${PORTNAME}21${PKGNAMESUFFIX}
+
+USE_BISON= build
+USE_BZIP2= yes
+USE_GMAKE= yes
+GNU_CONFIGURE= yes
+USE_AUTOTOOLS= autoconf aclocal libtool
+ACLOCAL_ARGS= --acdir=${ACLOCAL_DIR} -I ${LOCALBASE}/share/aclocal \
+ -I ${WRKSRC}/m4
+MAKE_JOBS_UNSAFE= yes
+
+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.5* firebird-server-2.5*
+
+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/firebird21-client
+
+AUTOGENARGS= --without-editline --with-lock-manager
+
+ALL_TARGET= firebird_boot ref_databases msgs libfbembed intl otherfiles \
+ inet_server extlib embed_gfix embed_gbak embed_gdef embed_util \
+ embed_fbudf
+
+SUB_FILES= pkg-install pkg-message aliases.conf
+
+UTIL_BIN= fb_inet_server fb_lock_print fbstat gbak gdef gfix gsec nbackup
+UDF_SO= ib_udf.so fbudf.so
+UDF_SQL= src/extlib/ib_udf2.sql src/extlib/fbudf/fbudf.sql
+.else
+# Client part stuff
+AUTOGENARGS= --without-editline
+
+ALL_TARGET= firebird_basic libfbembed embed_isql embed_gpre \
+ embed_gdef embed_qli libfbclient extlib
+
+USE_LDCONFIG= yes
+CLIENT_BIN= gpre isql-fb qli
+
+CFLAGS+= -I${LOCALBASE}/include
+LDFLAGS+= -L${LOCALBASE}/lib
+
+CONFIGURE_ENV+= CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" \
+ PTHREAD_CFLAGS="${PTHREAD_CFLAGS}" \
+ PTHREAD_LIBS="${PTHREAD_LIBS}"
+
+.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:
+ @${MKDIR} ${WRKSRC}/m4
+ ${CP} ${FILESDIR}/*.m4 ${WRKSRC}/m4
+ ${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-configure:
+ @(cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ${MAKE_ENV} MAKE=${GMAKE} \
+ ${AUTOTOOLS_VARS} ./autogen.sh --localstatedir=${LOCALSTATEDIR} \
+ --prefix=${LOCALSTATEDIR} --exec-prefix=${PREFIX} \
+ --libexecdir=${LIBEXECDIR} \
+ --sysconfdir=${CONFDIR} --datadir=${DATADIR} \
+ --with-icu-config=${LOCALBASE}/bin/icu-config \
+ ${AUTOGENARGS})
+
+do-install:
+.if !defined(CLIENT_ONLY)
+
+ ${INSTALL_PROGRAM} ${UTIL_BIN:S!^!${WRKSRC}/gen/firebird/bin/!} ${PREFIX}/bin
+ ${INSTALL_PROGRAM} -o root -g firebird -m 4550 ${WRKSRC}/gen/firebird/bin/fb_lock_mgr ${PREFIX}/bin
+ ${INSTALL_PROGRAM} -m 500 ${WRKSRC}/gen/firebird/bin/gds_drop ${PREFIX}/bin
+
+ @${MKDIR} ${CONFDIR}
+ ${INSTALL_DATA} ${WRKDIR}/aliases.conf ${CONFDIR}/aliases.conf.sample
+.if !exists(${CONFDIR}/aliases.conf)
+ ${INSTALL_DATA} ${WRKDIR}/aliases.conf ${CONFDIR}/aliases.conf
+.endif
+
+ ${MKDIR} ${LIBEXECDIR}/udf ${LOCALSTATEDIR}/help ${LIBEXECDIR}/intl
+
+ ${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
+
+.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
+ ${INSTALL_FB} -m 0444 ${WRKSRC}/gen/firebird/misc/fbintl.conf ${LIBEXECDIR}/intl/
+.else
+# defined CLIENT_ONLY
+ ${INSTALL_PROGRAM} ${CLIENT_BIN:S!^!${WRKSRC}/gen/firebird/bin/!} ${PREFIX}/bin
+
+ ${SED} -e "s=%%PREFIX%%=${PREFIX}=g" ${WRKSRC}/gen/firebird/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.1
+ ${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.1
+ ${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.1
+ ${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/firebird21-server/distinfo b/databases/firebird21-server/distinfo
new file mode 100644
index 000000000000..1dcab91ac478
--- /dev/null
+++ b/databases/firebird21-server/distinfo
@@ -0,0 +1,2 @@
+SHA256 (firebird/Firebird-2.1.3.18185-0.tar.bz2) = 8047cbd4bdc79928be7369bf0cdfde74873f1de29c0ac74e7241826c02f0fd28
+SIZE (firebird/Firebird-2.1.3.18185-0.tar.bz2) = 13770360
diff --git a/databases/firebird21-server/files/aliases.conf.in b/databases/firebird21-server/files/aliases.conf.in
new file mode 100644
index 000000000000..ded23bfd70cb
--- /dev/null
+++ b/databases/firebird21-server/files/aliases.conf.in
@@ -0,0 +1,9 @@
+#
+# List of known database aliases
+# ------------------------------
+#
+# Examples:
+#
+# employee = %%EXAMPLESDIR%%/employee.fdb
+# security = /var/db/firebird/security2.fdb
+#
diff --git a/databases/firebird21-server/files/icu.m4 b/databases/firebird21-server/files/icu.m4
new file mode 100644
index 000000000000..37d0f8a08c40
--- /dev/null
+++ b/databases/firebird21-server/files/icu.m4
@@ -0,0 +1,46 @@
+dnl AM_PATH_ICU([MINIMUM-VERSION])
+dnl Adds support for ICU
+AC_DEFUN([AM_PATH_ICU],
+[
+ rast_lib_icu_major="$1"
+ rast_lib_icu_minor="$2"
+ rast_lib_icu_version="$1.$2"
+
+ AC_ARG_WITH(icu-config,
+ AC_HELP_STRING([--with-icu-config=PATH],[path to icu-config]),
+ [
+ AC_MSG_RESULT(using $withval for icu-config)
+ ICU_CONFIG="$withval"
+ ], [
+ AC_PATH_PROG(ICU_CONFIG, icu-config, no)
+ ])
+ HAVE_ICU="no"
+ if test "$ICU_CONFIG" != "no"; then
+ AC_MSG_CHECKING([ICU version])
+ ICU_VERSION="`$ICU_CONFIG --version`"
+ if test $? -eq 0; then
+ changequote(<<, >>)
+ ICU_MAJOR=`expr "$ICU_VERSION" : '\(.*\)\..*'`
+ ICU_MINOR=`expr "$ICU_VERSION" : '.*\.\(.*\)'`
+ changequote([, ])
+ if expr "$ICU_MAJOR" '>' "$rast_lib_icu_major" > /dev/null ||
+ ( expr "$ICU_MAJOR" '=' "$rast_lib_icu_major" > /dev/null &&
+ expr "$ICU_MINOR" '>=' "$rast_lib_icu_minor" > /dev/null ); then
+ AC_MSG_RESULT([$ICU_VERSION])
+
+ ICU_CPPFLAGS=`$ICU_CONFIG --cppflags`
+ ICU_LIBS=`$ICU_CONFIG --ldflags-libsonly`
+ ICU_LDFLAGS=`$ICU_CONFIG --ldflags-searchpath`
+ AC_SUBST(ICU_CPPFLAGS)
+ AC_SUBST(ICU_LIBS)
+ AC_SUBST(ICU_LDFLAGS)
+ HAVE_ICU="yes"
+ else
+ AC_MSG_WARN([$ICU_VERSION is too old; $rast_lib_icu_version is required])
+ fi
+ else
+ AC_MSG_WARN([icu-config --version failed])
+ fi
+ fi
+ AC_SUBST(HAVE_ICU)
+])
diff --git a/databases/firebird21-server/files/patch-autogen.sh b/databases/firebird21-server/files/patch-autogen.sh
new file mode 100644
index 000000000000..891c077fd261
--- /dev/null
+++ b/databases/firebird21-server/files/patch-autogen.sh
@@ -0,0 +1,11 @@
+--- autogen.sh.orig 2010-09-08 15:44:05.000000000 +0700
++++ autogen.sh 2010-10-18 13:37:36.000000000 +0700
+@@ -63,7 +63,7 @@
+ fi
+
+ echo "Running autoreconf ..."
+-$AUTORECONF --install --force --verbose || exit 1
++$AUTORECONF --install --force --verbose -I ./m4 || exit 1
+
+ # Hack to bypass bug in autoreconf - --install switch not passed to libtoolize,
+ # therefore missing config.sub and confg.guess files
diff --git a/databases/firebird21-server/files/patch-builds%install%misc%firebird.conf b/databases/firebird21-server/files/patch-builds%install%misc%firebird.conf
new file mode 100644
index 000000000000..d0105af83cf6
--- /dev/null
+++ b/databases/firebird21-server/files/patch-builds%install%misc%firebird.conf
@@ -0,0 +1,20 @@
+--- builds/install/misc/firebird.conf.orig Tue Aug 15 22:38:52 2006
++++ builds/install/misc/firebird.conf 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/firebird21-server/files/patch-builds%posix%Makefile.in.firebird b/databases/firebird21-server/files/patch-builds%posix%Makefile.in.firebird
new file mode 100644
index 000000000000..12922fd739aa
--- /dev/null
+++ b/databases/firebird21-server/files/patch-builds%posix%Makefile.in.firebird
@@ -0,0 +1,45 @@
+--- builds/posix/Makefile.in.firebird.orig 2008-12-10 21:22:15.000000000 +0600
++++ builds/posix/Makefile.in.firebird 2010-10-19 12:36:20.000000000 +0700
+@@ -185,9 +185,6 @@
+ #
+
+ external_libraries:
+-ifeq ($(STD_ICU),false)
+- $(MAKE) -f $(GEN_ROOT)/Makefile.extern.icu
+-endif
+ ifeq ($(STD_EDITLINE),false)
+ ifeq ($(EDITLINE_FLG),Y)
+ $(MAKE) -f $(GEN_ROOT)/Makefile.extern.editline
+@@ -519,12 +516,12 @@
+ #___________________________________________________________________________
+ #
+ .PHONY: clean clean_objects clean_dependancies clean_extern_objects clean_build \
+- clean_gpre_gen clean_icu clean_dbs clean_examples clean_makefiles \
++ clean_gpre_gen clean_dbs clean_examples clean_makefiles \
+ clean_editline clean_all
+
+
+ clean: clean_objects clean_dependancies clean_extern_objects clean_build \
+- clean_yacc_gen clean_gpre_gen clean_icu clean_dbs clean_examples
++ clean_yacc_gen clean_gpre_gen clean_dbs clean_examples
+
+ ifeq ($(EDITLINE_FLG),Y)
+ clean: clean_editline
+@@ -538,7 +535,6 @@
+ $(RM) $(ROOT)/libtool
+ $(RM_R) $(ROOT)/autom4te.cache
+ -make -C $(ROOT)/extern/editline distclean
+- -make -C $(ROOT)/extern/icu/source distclean
+ -make -C $(ROOT)/extern/btyacc distclean
+
+ clean_dbs:
+@@ -551,9 +547,6 @@
+ clean_editline:
+ -make -C $(ROOT)/extern/editline clean
+
+-clean_icu:
+- -make -C $(ROOT)/extern/icu/source clean
+-
+ clean_objects:
+ $(RM) `find $(TMP_ROOT)/ -type f -name '*.o' -print`
+
diff --git a/databases/firebird21-server/files/patch-builds%posix%make.defaults b/databases/firebird21-server/files/patch-builds%posix%make.defaults
new file mode 100644
index 000000000000..d63c0988bf4b
--- /dev/null
+++ b/databases/firebird21-server/files/patch-builds%posix%make.defaults
@@ -0,0 +1,40 @@
+--- builds/posix/make.defaults 2008-09-04 06:47:18.000000000 -0500
++++ builds/posix/make.defaults 2010-12-18 19:51:28.000000000 -0500
+@@ -118,7 +118,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
+@@ -162,7 +162,7 @@
+ STATICEXE_LINK:= @CXX@ $(GLOB_OPTIONS)
+
+ LINK_LIBS = @LIBS@
+-ICU_LIBS = -licuuc -licudata -licui18n
++ICU_LIBS = @ICU_LIBS@ @ICU_LDFLAGS@
+ STATICLINK_LIBS = @LIBS@
+ SO_LINK_LIBS = @LIBS@
+
+@@ -239,10 +239,6 @@
+ endif
+ endif
+
+-LIBICU_SO = $(LIB)/$(LIB_PREFIX)icuuc.$(SHRLIB_EXT) \
+- $(LIB)/$(LIB_PREFIX)icudata.$(SHRLIB_EXT) \
+- $(LIB)/$(LIB_PREFIX)icui18n.$(SHRLIB_EXT)
+-
+ # Shared library name for usage inside of the UDF
+ IbUtilLibraryName = $(LIB_PREFIX)ib_util.$(SHRLIB_EXT)
+ LIBIBUTIL_SO = $(LIB)/$(IbUtilLibraryName)
+@@ -268,7 +264,7 @@
+ FB_SUPER_SERVER = $(BIN)/fbserver$(EXEC_EXT)
+ FB_CLASSIC_SERVER = $(BIN)/fb_inet_server$(EXEC_EXT)
+
+-STATIC_CXXSUPPORT_LIB = -lsupc++ -lgcc_eh
++STATIC_CXXSUPPORT_LIB = -lstdc++ -lgcc_s -lgcc_eh
+
+ # From utilities
+ CREATE_DB = $(BIN)/create_db$(EXEC_EXT)
diff --git a/databases/firebird21-server/files/patch-builds%posix%make.rules b/databases/firebird21-server/files/patch-builds%posix%make.rules
new file mode 100644
index 000000000000..e435c59b116a
--- /dev/null
+++ b/databases/firebird21-server/files/patch-builds%posix%make.rules
@@ -0,0 +1,13 @@
+--- builds/posix/make.rules.orig 2008-12-10 07:03:31.000000000 +0600
++++ builds/posix/make.rules 2010-10-19 12:40:17.000000000 +0700
+@@ -33,9 +33,7 @@
+
+ # Please don't use compiler/platform specific flags here - nmcc 02-Nov-2002
+ CFLAGS:= $(CFLAGS) -I$(SRC_ROOT)/include/gen -I$(SRC_ROOT)/include -I$(SRC_ROOT)/vulcan -DNAMESPACE=Vulcan
+-ifeq ($(STD_ICU),false)
+- CFLAGS:= $(CFLAGS) -I$(ROOT)/extern/icu/source/common -I$(ROOT)/extern/icu/source/i18n
+-endif
++CFLAGS:= $(CFLAGS) @ICU_CPPFLAGS@
+
+ ifeq ($(IsProdTypeBuild),Y)
+ CFLAGS:= $(CFLAGS) $(PROD_FLAGS) -DPROD_BUILD
diff --git a/databases/firebird21-server/files/patch-configure.in b/databases/firebird21-server/files/patch-configure.in
new file mode 100644
index 000000000000..74f876aa487c
--- /dev/null
+++ b/databases/firebird21-server/files/patch-configure.in
@@ -0,0 +1,50 @@
+--- configure.in.orig 2009-06-05 16:50:33.000000000 +0700
++++ configure.in 2010-10-19 12:42:22.000000000 +0700
+@@ -721,6 +721,7 @@
+ AC_MSG_RESULT(yes)],
+ [AC_MSG_RESULT(no)])
+ fi
++AM_PATH_ICU(3, 6)
+
+ AC_CHECK_SIZEOF(void *)
+ AC_CHECK_SIZEOF(long)
+@@ -905,6 +906,10 @@
+ AC_SUBST(NEW_FIREBIRD_DIR)
+
+ AC_DEFINE_UNQUOTED(FB_PREFIX, $(if test "x$prefix" = "xNONE" ; then echo \"$ac_default_prefix\"; else echo \"$prefix\"; fi), [Installation path prefix])
++AC_DEFINE_UNQUOTED(FB_EXEC_PREFIX, "$exec_prefix", [Executables path prefix])
++AC_DEFINE_UNQUOTED(FB_CONF_PREFIX, "$sysconfdir", [Single-machine data path prefix])
++AC_DEFINE_UNQUOTED(FB_MSG_PREFIX, "$datadir", [Architecture-independent data path prefix])
++AC_DEFINE_UNQUOTED(FB_LIBEXEC_PREFIX, "$libexecdir", [Program executables path prefix])
+
+ AC_CONFIG_COMMANDS(,,[
+ dnl # rebuild version header if needed
+@@ -1267,9 +1272,6 @@
+ if test "$STD_EDITLINE" = "false"; then
+ AC_CONFIG_FILES(gen/Makefile.extern.editline:${MAKE_SRC_DIR}/Makefile.in.extern.editline)
+ fi
+-if test "$STD_ICU" = "false"; then
+- AC_CONFIG_FILES(gen/Makefile.extern.icu:${MAKE_SRC_DIR}/Makefile.in.extern.icu)
+-fi
+
+ case "$PLATFORM" in
+ SOLARIS | solx86 )
+@@ -1280,18 +1282,7 @@
+ esac
+
+
+-if test "$PROD_BUILD_FLG" = N; then
+- DEBUG_ICU=--enable-debug
+-fi
+-
+-if test "$STD_ICU" = "true"; then
+ AC_OUTPUT
+-else
+-AC_OUTPUT
+-(cd extern/icu/source
+-chmod +x runConfigureICU configure install-sh
+-./runConfigureICU "$ICU_PLATFORM" "$DEBUG_ICU" --prefix=`pwd`/..)
+-fi
+
+ dnl Print out the build configuration (the most interesting thing)
+ echo
diff --git a/databases/firebird21-server/files/patch-src%common%config%config.cpp b/databases/firebird21-server/files/patch-src%common%config%config.cpp
new file mode 100644
index 000000000000..b05adf508983
--- /dev/null
+++ b/databases/firebird21-server/files/patch-src%common%config%config.cpp
@@ -0,0 +1,11 @@
+--- src/common/config/config.cpp.orig Tue Aug 15 22:53:43 2006
++++ src/common/config/config.cpp Tue Aug 15 22:54:38 2006
+@@ -111,7 +111,7 @@
+ {TYPE_STRING, "RemoteBindAddress", (ConfigValue) 0},
+ {TYPE_STRING, "ExternalFileAccess", (ConfigValue) "None"}, // location(s) of external files for tables
+ {TYPE_STRING, "DatabaseAccess", (ConfigValue) "Full"}, // location(s) of databases
+- {TYPE_STRING, "UdfAccess", (ConfigValue) "Restrict UDF"}, // location(s) of UDFs
++ {TYPE_STRING, "UdfAccess", (ConfigValue) "Restrict " FB_LIBEXEC_PREFIX "/UDF"}, // location(s) of UDFs
+ {TYPE_STRING, "TempDirectories", (ConfigValue) 0},
+ #ifdef DEV_BUILD
+ {TYPE_BOOLEAN, "BugcheckAbort", (ConfigValue) true}, // whether to abort() engine when internal error is found
diff --git a/databases/firebird21-server/files/patch-src%jrd%db_alias.cpp b/databases/firebird21-server/files/patch-src%jrd%db_alias.cpp
new file mode 100644
index 000000000000..27f7d6dc114d
--- /dev/null
+++ b/databases/firebird21-server/files/patch-src%jrd%db_alias.cpp
@@ -0,0 +1,13 @@
+--- src/jrd/db_alias.cpp.orig Tue Aug 15 23:07:31 2006
++++ src/jrd/db_alias.cpp Tue Aug 15 23:10:08 2006
+@@ -33,8 +33,8 @@
+
+ bool ResolveDatabaseAlias(const string& alias, string& database)
+ {
+- string alias_filename;
+- Firebird::Prefix(alias_filename, ALIAS_FILE);
++ string alias_filename = string(FB_CONF_PREFIX)
++ + PathUtils::dir_sep + ALIAS_FILE;
+ ConfigFile aliasConfig(false);
+ aliasConfig.setConfigFilePath(alias_filename);
+
diff --git a/databases/firebird21-server/files/patch-src%jrd%gds.cpp b/databases/firebird21-server/files/patch-src%jrd%gds.cpp
new file mode 100644
index 000000000000..f22bc183629e
--- /dev/null
+++ b/databases/firebird21-server/files/patch-src%jrd%gds.cpp
@@ -0,0 +1,11 @@
+--- src/jrd/gds.cpp.orig Tue Aug 15 22:49:37 2006
++++ src/jrd/gds.cpp Tue Aug 15 22:50:14 2006
+@@ -3734,7 +3734,7 @@
+ Firebird::PathName msgPrefix;
+ if (!fb_utils::readenv(FB_MSG_ENV, msgPrefix))
+ {
+- msgPrefix = prefix;
++ msgPrefix = FB_MSG_PREFIX;
+ }
+ msgPrefix.copyTo(ib_prefix_msg_val, sizeof(ib_prefix_msg_val));
+ ib_prefix_msg = ib_prefix_msg_val;
diff --git a/databases/firebird21-server/files/patch-src%jrd%os%config_root.h b/databases/firebird21-server/files/patch-src%jrd%os%config_root.h
new file mode 100644
index 000000000000..976da187b36a
--- /dev/null
+++ b/databases/firebird21-server/files/patch-src%jrd%os%config_root.h
@@ -0,0 +1,11 @@
+--- src/jrd/os/config_root.h.orig Tue Aug 15 22:57:33 2006
++++ src/jrd/os/config_root.h Tue Aug 15 22:57:53 2006
+@@ -76,7 +76,7 @@
+ {
+ GetRoot();
+ install_dir = root_dir;
+- config_file = root_dir + string(CONFIG_FILE);
++ config_file = string(FB_CONF_PREFIX) + PathUtils::dir_sep + string(CONFIG_FILE);
+ }
+
+
diff --git a/databases/firebird21-server/files/patch-src%jrd%plugin_manager.cpp b/databases/firebird21-server/files/patch-src%jrd%plugin_manager.cpp
new file mode 100644
index 000000000000..7a2ffab72408
--- /dev/null
+++ b/databases/firebird21-server/files/patch-src%jrd%plugin_manager.cpp
@@ -0,0 +1,20 @@
+--- src/jrd/plugin_manager.cpp.orig Tue Aug 15 23:11:04 2006
++++ src/jrd/plugin_manager.cpp Tue Aug 15 23:12:01 2006
+@@ -64,7 +64,7 @@
+ void PluginManager::loadAllPlugins()
+ {
+ Firebird::PathName checkDir;
+- const Firebird::PathName fbLibPath = Config::getRootDirectory();
++ const Firebird::PathName fbLibPath = FB_LIBEXEC_PREFIX;
+
+ for (spIterator pathItr = searchPaths.begin(); pathItr != searchPaths.end(); ++pathItr)
+ {
+@@ -131,7 +131,7 @@
+ PluginManager::Module *PluginManager::loadPluginModule(const Firebird::PathName& name)
+ {
+ Firebird::PathName checkPath;
+- const Firebird::PathName fbLibPath = Config::getRootDirectory();
++ const Firebird::PathName fbLibPath = FB_LIBEXEC_PREFIX;
+
+ // Check to see if the module name was specified as a relative path
+ // from one of our search paths. This only makes sense if the name
diff --git a/databases/firebird21-server/files/patch-src%jrd%svc.cpp b/databases/firebird21-server/files/patch-src%jrd%svc.cpp
new file mode 100644
index 000000000000..a76b1568b036
--- /dev/null
+++ b/databases/firebird21-server/files/patch-src%jrd%svc.cpp
@@ -0,0 +1,22 @@
+--- src/jrd/svc.cpp.orig Mon Jul 31 11:43:28 2006
++++ src/jrd/svc.cpp Wed Nov 15 16:56:13 2006
+@@ -583,7 +583,8 @@
+ {
+ #ifndef SERVICE_THREAD
+ TEXT service_path[MAXPATHLEN];
+- gds__prefix(service_path, serv->serv_executable);
++ strlcpy(service_path, FB_EXEC_PREFIX "/", MAXPATHLEN);
++ strlcat(service_path, serv->serv_executable, MAXPATHLEN);
+ service_fork(service_path, service);
+ #else
+ /* if service is single threaded, only call if not currently running */
+@@ -1742,7 +1743,8 @@
+ TEXT service_path[MAXPATHLEN];
+
+ if (serv->serv_executable) {
+- gds__prefix(service_path, serv->serv_executable);
++ strlcpy(service_path, FB_EXEC_PREFIX "/", MAXPATHLEN);
++ strlcat(service_path, serv->serv_executable, MAXPATHLEN);
+ service->svc_flags = SVC_forked;
+ service_fork(service_path, service);
+ }
diff --git a/databases/firebird21-server/files/patch-src%lock%lock.cpp b/databases/firebird21-server/files/patch-src%lock%lock.cpp
new file mode 100644
index 000000000000..279324733739
--- /dev/null
+++ b/databases/firebird21-server/files/patch-src%lock%lock.cpp
@@ -0,0 +1,16 @@
+--- src/lock/lock.cpp.orig Fri Feb 3 16:13:23 2006
++++ src/lock/lock.cpp Wed Aug 16 12:41:32 2006
+@@ -2708,7 +2708,12 @@
+ #ifdef DEBUG_MANAGER
+ gds__prefix(string, DEBUG_MANAGER);
+ #else
+- gds__prefix(string, LOCK_MANAGER);
++ if (! getenv("FIREBIRD")) {
++ strlcpy(string, FB_EXEC_PREFIX "/", MAXPATHLEN);
++ strlcat(string, LOCK_MANAGER, MAXPATHLEN);
++ } else {
++ gds__prefix(string, LOCK_MANAGER);
++ }
+ #endif
+ if (statistics(string, &stat_buf) == -1) {
+ // bug() fills the vector with this address, it must be static.
diff --git a/databases/firebird21-server/files/patch-src+jrd+IntlManager.cpp b/databases/firebird21-server/files/patch-src+jrd+IntlManager.cpp
new file mode 100644
index 000000000000..c918181dce4f
--- /dev/null
+++ b/databases/firebird21-server/files/patch-src+jrd+IntlManager.cpp
@@ -0,0 +1,11 @@
+--- src/jrd/IntlManager.cpp.orig Tue Nov 21 16:24:19 2006
++++ src/jrd/IntlManager.cpp Tue Nov 21 16:30:40 2006
+@@ -78,7 +78,7 @@
+ #endif
+
+ Firebird::PathName intlPath;
+- PathUtils::concatPath(intlPath, Config::getRootDirectory(), "intl");
++ PathUtils::concatPath(intlPath, FB_LIBEXEC_PREFIX, "intl");
+
+ ScanDir dir(intlPath.c_str(), "*.conf");
+
diff --git a/databases/firebird21-server/files/patch-src-common-classes_alloc.h b/databases/firebird21-server/files/patch-src-common-classes_alloc.h
new file mode 100644
index 000000000000..501c3b224aaa
--- /dev/null
+++ b/databases/firebird21-server/files/patch-src-common-classes_alloc.h
@@ -0,0 +1,26 @@
+--- src/common/classes/alloc.h 2010-12-18 19:21:49.000000000 -0500
++++ src/common/classes/alloc.h 2010-12-18 19:23:30.000000000 -0500
+@@ -47,6 +47,7 @@
+ #include <stdlib.h> /* XPG: prototypes for malloc/free have to be in
+ stdlib.h (EKU) */
+ #endif
++#include <new>
+
+ #ifdef _MSC_VER
+ #define THROW_BAD_ALLOC
+@@ -448,15 +449,6 @@
+ );
+ }
+
+-inline void* operator new(size_t, void* ptr) throw()
+-{
+- return ptr;
+-}
+-inline void* operator new[](size_t, void* ptr) throw()
+-{
+- return ptr;
+-}
+-
+ inline void operator delete(void* mem) throw()
+ {
+ Firebird::MemoryPool::globalFree(mem);
diff --git a/databases/firebird21-server/files/pkg-install.in b/databases/firebird21-server/files/pkg-install.in
new file mode 100644
index 000000000000..ea7f4c85b705
--- /dev/null
+++ b/databases/firebird21-server/files/pkg-install.in
@@ -0,0 +1,71 @@
+#!/bin/sh
+
+# $FreeBSD: /tmp/pcvs/ports/databases/firebird21-server/files/pkg-install.in,v 1.1 2010-12-20 09:05:05 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/firebird21-server/files/pkg-message.in b/databases/firebird21-server/files/pkg-message.in
new file mode 100644
index 000000000000..3d098ff99886
--- /dev/null
+++ b/databases/firebird21-server/files/pkg-message.in
@@ -0,0 +1,27 @@
+###############################################################################
+
+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) 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.
+
+4) See documentation in %%DOCSDIR%%/ for more information.
+5) Enjoy it ;)
+
+################################################################################
diff --git a/databases/firebird21-server/pkg-descr b/databases/firebird21-server/pkg-descr
new file mode 100644
index 000000000000..ed76025f94b8
--- /dev/null
+++ b/databases/firebird21-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/firebird21-server/pkg-plist b/databases/firebird21-server/pkg-plist
new file mode 100644
index 000000000000..e52eb5039c5c
--- /dev/null
+++ b/databases/firebird21-server/pkg-plist
@@ -0,0 +1,35 @@
+@comment $FreeBSD$
+bin/fb_inet_server
+bin/fb_lock_mgr
+bin/fb_lock_print
+bin/fbstat
+bin/gbak
+bin/gdef
+bin/gds_drop
+bin/gfix
+bin/gsec
+bin/nbackup
+libexec/firebird/intl/fbintl
+libexec/firebird/intl/fbintl.conf
+libexec/firebird/udf/fbudf.so
+libexec/firebird/udf/fbudf.sql
+libexec/firebird/udf/ib_udf.so
+libexec/firebird/udf/ib_udf2.sql
+@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
+@dirrmtry %%CONFDIR%%
+@dirrm libexec/firebird/intl
+@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/firebird21-server/pkg-plist.client b/databases/firebird21-server/pkg-plist.client
new file mode 100644
index 000000000000..f645ecb9e9d2
--- /dev/null
+++ b/databases/firebird21-server/pkg-plist.client
@@ -0,0 +1,29 @@
+@comment $FreeBSD$
+bin/gpre
+bin/isql-fb
+bin/qli
+include/blr.h
+include/ib_util.h
+include/ibase.h
+include/iberror.h
+include/perf.h
+lib/libfbclient.so
+lib/libfbclient.so.2
+lib/libfbclient.so.2.1
+lib/libfbclient.so.%%FIREBIRD_VERSION%%
+lib/libfbembed.so
+lib/libfbembed.so.2
+lib/libfbembed.so.2.1
+lib/libfbembed.so.%%FIREBIRD_VERSION%%
+lib/libgds.so
+lib/libgds.so.2
+lib/libgds.so.2.1
+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%%