On 7 April 2016 at 07:21, Don Morrison dfm2@cmu.edu wrote:
However Roan's use of SQLite is not essential to Roan's usefulness (well, it's probably not all that useful to most people anyway, only to those interested in change ringing, a small audience). There's really only one, tiny corner of functionality in Roan it supports. While sqlite3 is easily obtained, it would seem polite to allow use of Roan without it, simply disabling the two functions that depend upon it. The "disable if the cl-sqlite stuff is not present" part I can easily do. What's causing me to scratch my head is figuring out how to set things up so Roan will still install whether or not the sqlite3 binary library is present.
I had a similar issue when I contributed GSSAPI support to Postmodern. I clearly did not want to have Postmodern depend on cl-gss, which will fail to load if the Kerberos client libraries are not installed on the machine (it will also completely fail on Windows).
The solution I chose was to simply require the user to manually load cl-gss (using QL or whatever mechanism they feel like). When GSSAPI authentication is requested, Postmodern will check if the CL-GSS package is available, and then call the relevant functions through symbols looked up using FIND-SYMBOL.
If the cl-gss system has not been loaded, Postmodern will issue a restartable error requesting the user to to load the system before continuing.
Regards, Elias