[Asterisk-Dev] chan_sccp move from lambda-solutions.deto SF.NET

Steven Sokol ssokol at sokol-associates.com
Thu Apr 22 08:37:42 MST 2004


== CORRECTION ==
(Pardon the top posting)

I spoke with Mark regarding the scenario described below.  I am in error
regarding one point I made.  I stated that you MIGHT be able to build a
non-GPL module for Asterisk if you created all of the code yourself and did
not link to any of the Asterisk code base.  However:

Each module that is loaded into Asterisk is required to include a function
that returns a sort of pass-phrase key that MUST declare the code as GPL.
The function is:

char *key()
{
	return ASTERISK_GPL_KEY;
}

The key phrase is:

#define ASTERISK_GPL_KEY \
"This paragraph is Copyright (C) 2000, Linux Support Services, Inc.  \
In order for your module to load, it must return this key via a function \
called \"key\".  Any code which includes this paragraph must be licensed
under \ the GNU General Public License version 2 or later (at your option).
Linux \ Support Services, Inc. reserves the right to allow other parties to
license \ this paragraph under other terms as well."

So there is the definitive answer.  ALL modules loaded by Asterisk must be
GPL.  This means that any channels, resource modules or applications that
are distributed must be distributed with source and following all of the
other rules of the GPL.

- Steven

> > Hmmm....
> > you mean i could legally sell a non-GPL * module which could then
> > legally be used by someone else (without requiring a non-GPL * license)?
> > I dont think the GPL would allow this.
> > --
> 
> I don't claim to be a GPL expert, but from what I have read (and I have
> read
> several legal opinion letters) the GPL extends only to code "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 [GPL] License."
> 
> Chan_sccp (from looking at the header files) really has to be released
> under
> the GPL.  It derives from a GPL'd work (Asterisk) by including a bunch of
> the Asterisk code:
> 
> #include <asterisk/frame.h>
> #include <asterisk/module.h>
> #include <asterisk/channel.h>
> #include <asterisk/lock.h>
> #include <asterisk/logger.h>
> #include <asterisk/sched.h>
> #include <asterisk/io.h>
> #include <asterisk/rtp.h>
> #include <asterisk/config.h>
> #include <asterisk/options.h>
> #include <asterisk/channel_pvt.h>
> (from chan_sccp.h)
> 
> This is not universal.  Channels and applications _can_ be created that
> don't link to Asterisk.  It just requires a lot of extra work.
> 
> Example: HP can create printer drivers that adhere to the CUPS driver
> standard that are loaded by CUPS (GPL) on a Linux (GPL) system without
> being
> required to release the source for their driver, or to license the use of
> that driver under GPL.
> 
> If chan_sccp was created starting with any of the Asterisk (GPL) code then
> it MUST be GPL, or it can't be released (but it can be used internally).
> If
> the author copied chan_zap.c to chan_sccp.c, then began making changes,
> then
> it is a derivative work and GPL requires all "derivative work" be released
> as GPL.  If he linked to any of the Asterisk libraries (which he did - see
> the above list of .h files) the GPL mandates that he release his product
> as
> GPL software.
> 
> If the author analyzed the interface mechanism used by the channels in
> Asterisk and then created chan_sccp.c from scratch, not copying the code,
> then he can license it as he sees fit.  This, however, is pretty hard to
> do.
> He can't use ANY of the header files from Asterisk.  He can't link to ANY
> of
> the Asterisk code.  His module must stand completely alone.  This will
> cause
> him to write a lot of extra code just to avoid violating the GPL.
> 
> The baseline explanation I got from a lawyer friend:  If you use any of a
> GPL application's code in creating your code (including headers and linked
> functions from dynamic libraries) you must be GPL.  However, if you create
> a
> module that talks to a GPL application, or is loaded and used by a GPL
> application (like a channel) without modifying or including the source for
> the GPL application, then you are free to license as NON GPL.
> 
> Many libraries (including much of the inner guts of Linux) are released as
> LGPL (lesser General Public License) so that people _can_ release non GPL
> code that makes use of the GPL code.  This includes such goodies as glibc
> (the core c library for gcc).  LGPL does not have the stipulation
> regarding
> derived works, so it is generally "safe" for non-GPL code to link to LGPL
> code.
> 
> IMHO: the authors of chan_sccp must either remove all GPL code from their
> application, or release it under the GPL.  I would think that the latter
> is
> by far the easiest suggestion (especially since the code is already open
> source and publicly available).
> 
> Am I off base here?
> 
> Thanks,
> 
> -S
> 
> Disclaimer: I'm not a lawyer and I'm not giving legal advice.
> 
> 
> _______________________________________________
> Asterisk-Dev mailing list
> Asterisk-Dev at lists.digium.com
> http://lists.digium.com/mailman/listinfo/asterisk-dev
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-dev





More information about the asterisk-dev mailing list