[ircd-ratbox] ratbox-services-1.1.2_p1 port install on FreeBSD 6.2

Lewis lewis at elasticmind.net
Mon Sep 3 19:41:09 UTC 2007

Hi Lee,

Thank you for your email and for looking looking into this for me, it is 

Please find some information/comments in-line with your previous message.

Lee H wrote:
> When compiling against a pre-installed sqlite3 in a user specified 
> directory, we need the shared library (libsqlite3.so) rather than the 
> static library (libsqlite3.a).

I see. The file 'libsqlite.so' is also made available by the 
pre-installed version of sqlite on the system in the following location:


If the build/install process for ratbox-services fails while trying to 
look for the 'libsqlite3.a' file in a strange location, does that mean 
the Makefile is for some reason trying to do something with the static 
library it shouldn't be?

> For ports, it shouldn't really be allowed to compile its own sqlite3
> variant.  It should instead require there is one already installed on the
> system, and flat out refuse to compile if it isn't.

I agree. The port is set to always build with the 
'--without-sqlitebuild' option, and the sqlite3 subdirectory has been 
removed from the ratbox-services package Makefile, so in theory the 
bundled variant of sqlite3 should never be installed. The port already 
requires that the user select at least one of the three available 
options as a backend, either; sqlite3, mysql, or pgsql, and will not 
continue until at least one has been selected.

AndroSyn and I had a discussion about how best to proceed with getting 
the port to build correctly. The intention was that forcing the user to 
select one of these options would ensure that the ratbox-services 
Makefile would never be unable to find a pre-installed version of either 
sqlite3, mysql, or pgsql; and thus would never revert to its 
auto-configure fail-safe and automatically add the bundled sqlite3 
subdirectory to the Makefile and install its own bundled sqlite3 variant.

> Though I am intrigued as to how you expect to offer support for mysql, 
> pgsql
> and sqlite3 via ports?

The user is required to select one ore more backends via the port's 
options, which are then passed to the ratbox-services Makefile as 
configure arguments later on. Whichever backend the user selects, or 
even if they select all three, the port will automatically fetch, build 
and install sqlite3, mysql-client or pgsql-client, as required, before 
continuing to build and install ratbox-services ensuring that at least 
one will be available for ratbox-services to link up with and be happy.

>>         $(INSTALL) -m 750 src/$(BIN) $(DESTDIR)$(sbindir)
>> -       $(INSTALL) -m 640 doc/example.conf $(DESTDIR)$(sysconfdir)
>>         $(INSTALL) -m 640 include/setup.h $(DESTDIR)$(includedir)
>>         $(INSTALL) -m 640 include/rserv.h $(DESTDIR)$(includedir)
>>         $(INSTALL) -m 640 include/channel.h $(DESTDIR)$(includedir)
> These include files are only used when the dbupgrade.pl tools are 
> installed,
> which you have removed from the Makefile..

To conform with the ports and system hierarchy, the dbupgrade.pl and 
other files needed to be installed into a different location. So as you 
mentioned, they are removed from the Makefile and installed in a 
different location by the port itself.

Hope that helps.

Please let me know if I can provide any further info that might help 
with fixing the problem when building as a port. Again, thank you for 
your time and consideration.

Kind regards,

More information about the ircd-ratbox mailing list