Bart Schaefer wrote:

BS> On Fri, 19 Apr 2002, Craig R Hughes wrote:
BS>
BS> > Bart Schaefer wrote:
BS> >
BS> > BS> Right; the GPL doesn't require you to expose to any third party any
BS> > BS> changes that you make; it just requires you to provide the source code if
BS> > BS> and when you do expose changes to a third party.
BS> >
BS> > I'm not sure what the GPL requires of you if you modify config files
BS> > which interact programmatically with GPLed code
BS>
BS> All config files interact programmatically with the software they're
BS> configuring.  Whether the config file happens to be written in the same
BS> language as the software is irrelevant.

But some config files are more programmatic than others.  Is EvalTests.pm code,
or config file?  How about the rules files which contain the more complex
regular expressions?  What's the difference between EvalTest and the rule files?
How about between EvalTest and PerMsgStatus?  PerMsgStatus and SpamAssassin?
Getting a clearer sense of the potential issues?

BS> > In the case of SA, the config files are really more or less part of the
BS> > program code.  Does that mean ISPs would have to make their changes to
BS> > the code available to their customers, if those customers are allowed to
BS> > edit their user_prefs?
BS>
BS> Section 0 says:
BS>
BS> "Activities other than copying, distribution and modification are not
BS> covered by this License; they are outside its scope.  The act of
BS> running the Program is not restricted, and the output from the Program
BS> is covered only if its contents constitute a work based on the
BS> Program (independent of having been made by running the Program)."
BS>
BS> The usual IANAL applies, but I don't think installing SA on a machine you
BS> own and allowing users of the machine to run it can be said to constitute
BS> "copying" or "distribution" to those users.

modification though is covered, and if the config files can be considered part
of the code (they are being executed, not just setting parameters [and what's
the difference anyway in a turing machine?]), and users can edit the config...

BS> > ... The problem I'm more concerned with is the config-file-is-code one
BS> > which is a feature of many Perl programs, combined with section 2(b) of
BS> > the GPL which says that you must apply the GPL to any work "that in
BS> > whole or in part _contains_ or is derived from" GPLed code (my
BS> > underlining).  My reading of that is that containing a GPLed piece in
BS> > the distribution of a greater package requires the greater package to
BS> > carry the GPL.
BS>
BS> I don't think you're reading 2(b) that wrong, but just because the program
BS> reads and executes a config file doesn't mean that the config file is
BS> "contained" in the "work."  (If the GPL included a definition of a "work"
BS> a lot of this confusion could be avoided.)  "Running the Program is not
BS> restricted" -- if the config file doesn't become part of the program until
BS> the program runs, it's not covered.

Can I build any extension I want to on a GPL base and just all those extra bits
config files?  Or just call the parts I don't want the GPL to apply to config
files?  If that's true then the GPL strikes me as providing no value.

BS> > ... The last bit of section 2 seems to say that you can distribute the
BS> > GPLed module separately from the non-GPLed part, and then avoid being
BS> > compelled to GPL the whole thing, but if you package them together, the
BS> > whole enchilada need to carry the GPL.
BS>
BS> It doesn't really even say that.  "... mere aggregation of another work
BS> not based on the Program with the Program (or with a work based on the
BS> Program) on a volume of a storage or distribution medium does not bring
BS> the other work under the scope of this License."  A GPL'd plugin does not
BS> (in fact, specifically cannot -- "This General Public License does not
BS> permit incorporating your program into proprietary programs") cause the
BS> program into which it plugs to become GPL'd.

The clause you quote sound to me like it does not cause the plugged-into program
to become GPLed, because you are not granted a license to use GPLed code in that
way in the first place.

BS> On Fri, 19 Apr 2002, Daniel Quinlan wrote:
BS>
BS> > Bart Schaefer writes:
BS> >
BS> > > This, on the other hand, is not clear.  The GPL attempts to apply to the
BS> > > algorithms used in the code as well as to the literal code itself; some
BS> > > people interpret this to mean that if you so much as look at a piece of
BS> > > GPL'd code, you might accidentally learn something, which, if it later
BS> > > affected the way you wrote some other piece of code, would mean that the
BS> > > code you wrote was now also GPL'd.
BS> > >
BS> > > This is obviously a very paranoid interpretation, but not unheard-of.
BS> >
BS> > It is not a correct understanding of the GPL.  Actually, it's
BS> > completely wrong.  The GPL makes absolutely no claims on algorithms.
BS>
BS> I don't know the exact reasoning behind the above claim, but it has been
BS> repeated a number of times recently -- there was a slashdot discussion,
BS> I think, and I've also seen remarks from a person who works at a large
BS> software-company-that-shall-remain-nameless to the effect that their
BS> corporate lawyers interpret the GPL that way.  On a guess, I'd say that
BS> it all comes back to the GPL's use of "work" as a noun without defining
BS> it.  "The work" of a program could be construed to include its algorithms.

I don't read the GPL that way, and am not concerned about that aspect of it.  I
would hazard to guess that any such restrictions which are not based on patent
law, and which tried to prohibit the exercise of by an individual of the tools
of his or her trade would be invalid in most jurisdictions.

BS> > The GPL is not viral.  It cannot "infect" your code.  You must actively
BS> > *copy* GPL code and *put* it into your code for the GPL to apply to the
BS> > derivative work.  At a later date, you could remove all of the GPL code
BS> > (and any code derived from it) and then the work would no longer be
BS> > required to be GPL.
BS>
BS> The "viral" meaning goes this way:  I actively copy some GPL'd code X into
BS> my program Y.  The GPL now applies to the *entire* derivative work Z.  I
BS> later remove X from Z; this creates a new work W.  However, all the deltas
BS> from Y to W are GPL'd, because the entirety of Z was GPL'd.  In order to
BS> remove the GPL from W, I have to revert all the way back to X.  As this is
BS> usually impractical if not impossible, the GPL has effectively "infected"
BS> my code.

Well, that's one version of the viral aspect.  The version I'm more concerned
about is that I'm not gonna want to remove GPL modules once they're in the code.
Why would I?  I made a choice to put them in in the first place.  If I didn't
want the code in there, I'd just rewrite it in the first place before inserting
it.  When I talk about GPL cancer (which I'm not saying is a bad thing, I'm just
borrowing a phrase coined by others), what I'm referring to is the fact the
while there is indisputably GPLed code forming a part of my own stuff, I am
forced to license all my work (which might be a much more substantial effort
than the small module I included) under the GPL.  If I copy/paste one line of
GPL code into SpamAssassin, then I *must* release the entire thing under the GPL
for at least as long as that line remains in the code.  To me, that is a highly
infectious licensing restriction.  Again, that's not necessarily a bad thing in
all cases; in the case of the SpamAssassin project, where I think there are
probably a number of modified versions out there, that could well be a serious
issue.  The perl artistic license seems to achieve the needs of the project far
more effectively (it even allows you to have a GPL license on the package if you
want one).

C


_______________________________________________
Spamassassin-talk mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/spamassassin-talk

Reply via email to