diff options
author | acm <acm@FreeBSD.org> | 2010-12-20 17:05:05 +0800 |
---|---|---|
committer | acm <acm@FreeBSD.org> | 2010-12-20 17:05:05 +0800 |
commit | 068dbd6836ffa2b87d7f62e439d017d8eb6c5bb4 (patch) | |
tree | eb662c521b2d187cf122267ff53b3d984c2d90cc /databases | |
parent | 06ccf3e6734f70b1be5fc96f8dd6671605e194c2 (diff) | |
download | freebsd-ports-gnome-068dbd6836ffa2b87d7f62e439d017d8eb6c5bb4.tar.gz freebsd-ports-gnome-068dbd6836ffa2b87d7f62e439d017d8eb6c5bb4.tar.zst freebsd-ports-gnome-068dbd6836ffa2b87d7f62e439d017d8eb6c5bb4.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>
Diffstat (limited to 'databases')
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%% |