PostgreSQL, OpenSSL, and the GPL
PostgreSQL, OpenSSL, and the GPL
Posted Feb 18, 2011 1:42 UTC (Fri) by vonbrand (subscriber, #4458)In reply to: PostgreSQL, OpenSSL, and the GPL by sfeam
Parent article: PostgreSQL, OpenSSL, and the GPL
The (USA) problem here is that a decision one way or the other here can only result from a final decision in a (multi-million) lawsuit over this obscure point, and that is rather unlikely to happen (FSF vs OpenSSL?).
Posted Feb 18, 2011 6:24 UTC (Fri)
by butlerm (subscriber, #13312)
[Link] (4 responses)
A stronger (USA) precedent than any project here would ever need was set by Baystate v. Bentley Systems (1996). The key holding is that technical interfaces are not copyrightable. Not just binary interfaces, but structure and element names. See here (pdf).
Even if this ruling didn't exist, in no way is it reasonable to conclude that the resulting binary of a compilation process that includes an ordinary header file to be "based upon" that header file. The reason why is that the compiler doesn't include any part of an ordinary header file in the resulting binary - it simply refers to information contained within it. Big difference.
As a consequence the resulting binary is not "substantially similar" to the header file in any way, and thus cannot seriously be considered to be "based upon" it. If merely referring to information from another source made something a derived work, all academic research would stop tomorrow. That's absurd, the courts know it, and so they exercise a modicum of sanity (where they can) when issuing rulings like this.
Posted Feb 19, 2011 6:16 UTC (Sat)
by dvdeug (guest, #10998)
[Link] (3 responses)
#define IMPLEMENT_DYNAMIC_BIND_FN(fn) \
Posted Feb 19, 2011 17:01 UTC (Sat)
by butlerm (subscriber, #13312)
[Link] (2 responses)
Posted Feb 19, 2011 23:07 UTC (Sat)
by nix (subscriber, #2304)
[Link]
Static functions in the header which mess with non-API-guaranteed stuff are exactly as bad as allowing your users to mess with such stuff in the first place. In both cases, the answer is the same: Don't Do That.
Posted Feb 23, 2011 22:44 UTC (Wed)
by dvdeug (guest, #10998)
[Link]
The (USA) problem here is that a decision one way or the other here can only result from a final decision in a (multi-million) lawsuit over this obscure point, and that is rather unlikely to happen (FSF vs OpenSSL?).
PostgreSQL, OpenSSL, and the GPL
PostgreSQL, OpenSSL, and the GPL
OPENSSL_EXPORT \
int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns) { \
if(ENGINE_get_static_state() == fns->static_state) goto skip_cbs; \
if(!CRYPTO_set_mem_functions(fns->mem_fns.malloc_cb, \
fns->mem_fns.realloc_cb, fns->mem_fns.free_cb)) \
return 0; \
CRYPTO_set_locking_callback(fns->lock_fns.lock_locking_cb); \
CRYPTO_set_add_lock_callback(fns->lock_fns.lock_add_lock_cb); \
CRYPTO_set_dynlock_create_callback(fns->lock_fns.dynlock_create_cb); \
CRYPTO_set_dynlock_lock_callback(fns->lock_fns.dynlock_lock_cb); \
CRYPTO_set_dynlock_destroy_callback(fns->lock_fns.dynlock_destroy_cb); \
if(!CRYPTO_set_ex_data_implementation(fns->ex_data_fns)) \
return 0; \
if(!ERR_set_implementation(fns->err_fns)) return 0; \
skip_cbs: \
if(!fn(e,id)) return 0; \
return 1; }
I said an "ordinary" header file for a reason. Inline functions of any sophistication are clearly an exception. They are also pretty much useless for any library that wants to maintain binary compatibility.
PostgreSQL, OpenSSL, and the GPL
PostgreSQL, OpenSSL, and the GPL
PostgreSQL, OpenSSL, and the GPL