Firebird 1.5.2 FreeBSD Release Notes -------------------------------------- FB-V1.5.2.4731 Firebird 1.5 Release 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 connecting remotely, as well as which existing databases you can access. If you want a database to be available remotely, be sure it's readable and writeable to group firebird. There may be times when you manage to get your system into a state where using any of the Firebird utilites (isql, gbak, gsec, 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 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 /var/db/firebird/security.fdb Statement failed, SQLCODE = -902 operating system directive semget failed -No such file or directory # ipcs -s Semaphores: T ID KEY MODE OWNER GROUP s 1310720 252034728 --rw-rw-rw- root wheel # ipcrm -s 1310720 and you should be in business. Once this is done, you should be able to connect normally to databases. Your first connection will restart the lock manager. There may be times, however, when you still get "semget failed" even though the lock manager is not running and the semaphores have been cleaned up. There seems to be a conflict with this release and the PostgreSQL 7 release as installed from the ports collection. If you're having trouble with Firebird and you're running PostgreSQL, try stopping PostgreSQL: /usr/local/etc/rc.d/pgsql.sh stop and see if that helps. Alternatively, increase the value of SEMMNS by 48 in your kernel configuration file. This can be found by getting the current value with 'sysctl -a | grep semmns'. You can either add this to your kernel config, or add the following line to /boot/loader.conf: kern.ipc.semmns=X where is is the current value plus 48. If this doesn't resolve the issue, try adding 48 again. Please note that as of RC8, the libgds.so symlink now points 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, libpthread.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/share/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 InterBase and Firebird are two distinct entities, all InterBase documentation is pertinent to Firebird. More information on Firebird and InterBase can be found at the following: http://sourceforge.net/projects/firebird/ http://www.ibphoenix.com/ 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