mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-23 00:43:28 +00:00
- Update to 1.5 RC8. [1] [2]
- Note that libgds.so is now symlinked to libfbembed.so rather than libfbclient.so. This restores Firebird 1.0.x shared library compatibility and fixes PHP build. [2] PR: ports/61276 [1], ports/61310 [2] Submitted by: Gleb Smirnoff <glebius@cell.sick.ru> [1], Chris Knight <chris@e-easy.com.au> (maintainer) [2] Approved by: nork (mentor)
This commit is contained in:
parent
78300b9f90
commit
f18b6b0130
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=98080
@ -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>
|
||||
|
@ -1 +1 @@
|
||||
MD5 (firebird15-rc7.tar.bz2) = f6a3a4afa1f2fdfde9a4348a618c4896
|
||||
MD5 (firebird15-rc8.tar.bz2) = cb775b56c0b3067994ec78f15a9e757d
|
||||
|
@ -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
|
||||
FB-V1.5.0.4201 Firebird 1.5 Release Candidate 8
|
||||
|
||||
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.
|
||||
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:
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
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>
|
||||
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
||||
|
171
databases/firebird-client/pkg-install
Normal file
171
databases/firebird-client/pkg-install
Normal file
@ -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
|
@ -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:
|
||||
|
@ -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
|
||||
|
@ -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>
|
||||
|
@ -1 +1 @@
|
||||
MD5 (firebird15-rc7.tar.bz2) = f6a3a4afa1f2fdfde9a4348a618c4896
|
||||
MD5 (firebird15-rc8.tar.bz2) = cb775b56c0b3067994ec78f15a9e757d
|
||||
|
@ -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
|
||||
FB-V1.5.0.4201 Firebird 1.5 Release Candidate 8
|
||||
|
||||
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.
|
||||
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:
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
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>
|
||||
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
||||
|
171
databases/firebird-server/pkg-install
Normal file
171
databases/firebird-server/pkg-install
Normal file
@ -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
|
@ -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:
|
||||
|
@ -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
|
||||
|
@ -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>
|
||||
|
@ -1 +1 @@
|
||||
MD5 (firebird15-rc7.tar.bz2) = f6a3a4afa1f2fdfde9a4348a618c4896
|
||||
MD5 (firebird15-rc8.tar.bz2) = cb775b56c0b3067994ec78f15a9e757d
|
||||
|
@ -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
|
||||
FB-V1.5.0.4201 Firebird 1.5 Release Candidate 8
|
||||
|
||||
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.
|
||||
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:
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
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>
|
||||
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
||||
|
171
databases/firebird/pkg-install
Normal file
171
databases/firebird/pkg-install
Normal file
@ -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
|
@ -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:
|
||||
|
@ -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
|
||||
|
@ -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>
|
||||
|
@ -1 +1 @@
|
||||
MD5 (firebird15-rc7.tar.bz2) = f6a3a4afa1f2fdfde9a4348a618c4896
|
||||
MD5 (firebird15-rc8.tar.bz2) = cb775b56c0b3067994ec78f15a9e757d
|
||||
|
@ -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
|
||||
FB-V1.5.0.4201 Firebird 1.5 Release Candidate 8
|
||||
|
||||
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.
|
||||
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:
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
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>
|
||||
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
||||
|
171
databases/firebird2-server/pkg-install
Normal file
171
databases/firebird2-server/pkg-install
Normal file
@ -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
|
@ -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:
|
||||
|
@ -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
|
||||
|
@ -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>
|
||||
|
@ -1 +1 @@
|
||||
MD5 (firebird15-rc7.tar.bz2) = f6a3a4afa1f2fdfde9a4348a618c4896
|
||||
MD5 (firebird15-rc8.tar.bz2) = cb775b56c0b3067994ec78f15a9e757d
|
||||
|
@ -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
|
||||
FB-V1.5.0.4201 Firebird 1.5 Release Candidate 8
|
||||
|
||||
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.
|
||||
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:
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
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>
|
||||
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
||||
|
171
databases/firebird20-server/pkg-install
Normal file
171
databases/firebird20-server/pkg-install
Normal file
@ -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
|
@ -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:
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user