Bridge modules: writing versus distributing, and incompatible licences

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
jp.stacey@drupal.org's picture

I am not a lawyer. Item #10 of the licensing FAQ asks a particular question (my emphasis throughout):

10: Can I write a "bridge module" to interface between Drupal and another system or library?

but then goes on to answer a slightly different one (with specific regard to incompatible licences):

It is not possible to distribute a module that integrates a non-GPL compatible library with Drupal, because it would be a derivative work of both Drupal and that other library and would therefore violate either the GPL or the license of the other library.

Writing and distributing, with regard to GPL compliance, are two potentially different legal acts. In fact, item #8 explicitly disassociates them:

You are under no obligation to distribute the code to anyone else.

So: can one legally write bridging code to a non-GPL library, so long as it is never distributed?

(Of course, you can write whatever you like on your own computer, and cross your fingers it never gets discovered. But I'm talking theory rather than practice; some companies are more litigation-fearful than others; and anyway, who knows what might be subpoenaed?)

Comments

Non-distribution

Crell's picture

I believe so, yes. However, be aware that "distribution" with software is very easy to do. If you write it and then give it to your client, that counts as distribution, even if no one but you and the client ever have a copy. That makes the utility of such modules limited at best.

markIllinois's picture

Re: "If you write it and then give it to your client, that counts as distribution, even if no one but you and the client ever have a copy."

I'm not sure this conclusion ("that counts as distribution") would follow automatically from the limited facts stated.

Doesn't the result (distribution or non-distribution) depend on what was agreed, as between the developer and client, regarding who owns the software? For example, if the developer was acting as an agent of the client to create the software for the client, how could a "distribution" have occurred merely because the client ended up with the software?

Furthermore, this result should not change even if the developer also ended up with a copy, because the developer could have continuing responsibility, still in a role as an agent of the client, to maintain and update the software.

...

Ask a lawyer :-)

Crell's picture

If you write a module as "work for hire" (meaning the client gets copyright from the get-go) using the client's computer while on-site at the client's office, then probably you could claim no distribution took place. Anything fuzzier than that, ask a lawyer about your specific case. :-)

At that point it's really academic anyway; Regardless of which of you holds the copyright, if either of you distribute it outside the two of you it has to be done under the GPL anyway. The original copyright holder doesn't make much difference.

@crell: If you write it and

jp.stacey@drupal.org's picture

@crell: If you write it and then give it to your client, that counts as distribution

Presumably if this is the case (acknowledging Drupal Newbie's comment) then hosting it for them on their behalf would be fine, because the client never has legal ownership.

@Drupal Newbie: Doesn't the result (distribution or non-distribution) depend on what was agreed, as between the developer and client, regarding who owns the software?

Could the model for deciding that be akin to publishing and libel, where either more than one copy must exist, or more than two parties be involved, to count as distribution? (Note conditional tense, and the answer is probably geographically specific anyway.)

Hosting?

Crell's picture

Presumably if this is the case (acknowledging Drupal Newbie's comment) then hosting it for them on their behalf would be fine, because the client never has legal ownership.

There is logic there, although I would double check it with a lawyer. As above, though, it doesn't make a great deal of difference. If the code is distributed to a party other than the copyright holder, it must be distributed under the GPL. At that point splitting hairs over who the copyright holder is doesn't make much difference, and if it does then you probably need a new client. :-)

I do not know enough about libel law to respond to your second point.

No, that's fair enough.

jp.stacey@drupal.org's picture

No, that's fair enough. Thanks for shooting the breeze on it, though: and the FAQ certainly makes things a lot clearer generally.

Distribution

andremolnar's picture

The easy answer is don't distribute your bridge module with Drupal.

Distribute Drupal. Then 1 millisecond (or more) later, distribute your bridge module.

Make it clear to the client why you have to do it that way.

andre

Still a derivative work

Crell's picture

As Drupal modules are derivative works of Drupal, the time delay is irrelevant. If distributed, the module must be under the GPL. Whether it's distributed in the same tarball as Drupal core or not doesn't matter.

Even if you could argue that such a loophole existed that let you circumvent the exact letter of the GPL, it would unquestionably violate the spirit of the GPL. You're receiving code from thousands of other people at no cost, with the only stipulation being "please share alike". To try and nitpick your way around that is at the very least rude and insulting.

This is not a measure to circumvent the GPL

andremolnar's picture

I don't disagree with anything you say.

A client has an investment in some proprietary software. Client requests Drupal for a project. Client would like some code that acts as glue or a bridge between Drupal and said software.

As a developer you cannot distribute Drupal the Glue and The Software together. That's not compatible.

You can distribute Drupal. You can distribute the Glue under GPL as long as it doesn't integrate the non GPL software and as long as its not distributed with the non GPL software.

My suggestion was don't distribute your bridge module with Drupal as a way of keeping worlds apart.

You'd do it this way to limit your liability should someone attempt to make the case that you are somehow in violation of the GPL.

andre

Drupal modules must be distributed under the GPL

Crell's picture

If the module bridges Drupal to another PHP app that is not GPL compatible, then the bridge module would by definition violate the license on one or the other application. That makes distributing it problematic either way.

If you're bridging to another system via XML-RPC, SOAP, HTTP/REST, or a shared MySQL database, then you would not be creating a derivative work of the other system and therefore you'd be safe.

It's not the order and style of distribution that matters. Distribution is distribution is distribution. It's the architecture of how the code interacts that matters. If you must bridge to a legacy system, be mindful of how you bridge to it, not how you go about distributing the code.

Legal

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: