Difference in databases/firebird25-client built as root and as unprivileged user

Ruslan Mahmatkhanov cvs-src at yandex.ru
Mon Oct 8 18:02:40 UTC 2012


there is a native python binding for Firebird database:

It is based on ports/172455 by Jose Jachuf. It builds just fine in 
tinderbox both with python2 and python3 but fails to build on a live 
system. The difference is that firebird25-client's (actually -server, 
because this is a slave port) Makefile has this lines in it:

        @if [ `${ID} -u` -eq 0 ]; then \
        ${ECHO_MSG} "==> Please do not build ${PORTNAME} as 'root' 
because this may cause conflicts with SysV semaphores of running 
services."; exit 1; fi

So, while being built in tinderbox this happens under root user, but 
with manual building from ports, it requires to build it as unprivileged 
user. In later case I've got this when trying to build the 
aforementioned python binding (py-fdb):

===>  Configuring for py27-fdb-0.9.1
Traceback (most recent call last):
   File "setup.py", line 7, in <module>
     from fdb import __version__
line 23, in <module>
     from fdb.fbcore import *
line 26, in <module>
     from . import ibase
line 41, in <module>
     fb_library = CDLL(fb_library_name)
   File "/usr/local/lib/python2.7/ctypes/__init__.py", line 365, in __init__
     self._handle = _dlopen(self._name, mode)
OSError: /usr/local/lib/libfbclient.so.2: Undefined symbol 
*** [do-configure] Error code 1

If I rebuild firebird25-client with those three lines commented out 
(with root privs), then this py-fdb port builds just fine. The question 
is - what the difference in privileged/unprivileged build may be, and 
what's proper way to fix this? Thanks.


Tinderboxing kills... the drives.

More information about the freebsd-ports mailing list