Forum OpenACS Q&A: Using OpenACS in a commercial project

Let's say I want to build a commercial ("proprietary") intranet site with the OpenACS. If my interpretation of the GNU GPL is correct, then I'm forced to publish every single bit of my code which somehow is combined with GPL'ed components (e.g. by calling stuff in an OpenACS module)
and I can't use any proprietary library at all. Are you aware of this limitation? How do the companies selling OpenACS based solutions (Ybos, OpenForce, etc) deal with this
problem? Do they really use the GPL for everything they develop for a client?

I really hope my GPL interpretation is wrong, well, IANAL.

Cheers,
Nils

Collapse
Posted by Adam Farkas on
You would have to release the source code, _if_ you built this commercial product and intended to sell (redistribute) it to a third party.

The GPL is designed to explicitly prevent co-opting of GPL'd code into commercial products without re-release of source

(contrast this with the apache license, which has no such requirement; hence, Oracle is re-selling a version of Apache with proprietary extensions. And no source.)

If, however, you are working on custom extensions for a client (as we at ArsDigita do for a living), and don't intend to have that client re-sell or redistribute the code that you write, then you should be OK.

If you can divulge the nature of your project, I might be able to give a more concrete answer. Hope it helps.

Collapse
Posted by Nils Kassube on
Adam Farkas wrote:
You would have to release the source code, _if_ you built this commercial product and intended to sell (redistribute) it to a third party.
[...]
If, however, you are working on custom extensions for a client (as we at ArsDigita do for a living), and don't intend to have that client re-sell or redistribute the code that you write, then you should be OK.

So you circumvent the issue by saying that developing custom extensions for a client doesn't involve distributing software?

The relevant part of the GPL:
You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

Cheers,
Nils

Collapse
Posted by Roberto Mello on
The GPL is meant to give you freedom and stop you from taking away from other people the freedoms that you have received. You have to pass along those freedoms.

So if you are building an intranet site, you have the freedom to use  OpenACS as much as you want. That's not a violation of the GPL. You also can modify it as much as you want, as long as you keep the copyright, GPL and credit notes there. You don't have to tell anyone that you modified it nor publish your modifications, as long as you are not distributing the software or trying to sell it to somebody else in a way that they can't access the changes (hard to do with OpenACS).

If you intend to sell that software to other people with your modifications, then you have to publish your changes. Otherwise you don't. But if you find bugs or things that you think could be improved, it would be very nice if you shared them.

Collapse
Posted by Nils Kassube on
I'm still confused 😊

I want to develop custom extensions for a client (= the third party), possibly using proprietary toolkits and deliver (distribute) them to the client. I couldn't care less what the client will be doing with them. He obviously, as expected, has access to the source code. The client doesn't want to publish the source for his public or private web site.

Is this legally okay? TIA.

Cheers,
Nils

Collapse
Posted by Ben Adida on
Nils, what you would be doing for your client is called a "work for
hire." As long as you define that in your contract with them, it
means that they own the copyright on the new code you write for
them, in which case this new code is a *private* modification of
the original code, and the GPL specifically allows these private
modifications to remain private.

Now, if you want to go ahead and reuse some of that code on
other client engagements, either you have to keep the copyright
to that code and thus you are distributing it to your client, or they
keep the copyright to the code and they are redistributing it back
to you. In *either* of those two situations, the new code must be
GPL'ed because you've entered the world of redistribution.

You are also free to mix n' match those two things. If you want to
reuse some of the code, that code will have to be GPL'ed. The
client-specific customizations can be a "work for hire."

Collapse
Posted by Adam Farkas on
Nils, I think that this link[1] might give you some insight as to the terms of the different licenses, including their restrictiveness.

It is interesting to note the "forking potential" of the more commercially-friendly licenses (apache, etc.)

At any rate, Ben's advice looks sound.

[1] http://www.stromian.com/Public_Licenses.html