Clarification on license for embedded/API use?

John Labovitz johnl at
Tue Sep 4 11:10:38 CDT 2007

Thanks so much for your detailed replies.  You're helping me clarify  
the situation.

On Sep 4, 2007, at 6:58 AM, Jonathan S. Shapiro wrote:

> The term "combined work"
> is not actually defined in copyright law. This is intentional.

That's the kind of statement that drives a programmer crazy. ;)

>      If I build a program that clearly cannot function without loading
>      your GPL'd program, most judges are likely to consider the result
>      a combined work. If I load your program as a plugin, but my  
> program
>      has other legitimate functions without the GPL'd subsystem, then
>      matters quickly become unclear.
> The conservative course of action is for him to run
> HG in a subprocess.

Although there would be other features of this application, the major  
feature is version-control of the application's documents, and that  
version-control is handled by shelling out to Mercurial tools.  If HG  
is not installed, the program won't function the way it's been  
advertised to function.  I suppose I could make it function "equally"  
with another VC system, making it less dependent on one single GPL  
system, but I'm not sure that helps the situation.

This brings up the point of distribution.  It would be cleanest to be  
able to bundle the HG tools and dependencies within my app, so  
there's only one thing to download & install.  (I know that  
technically I can do this, using py2app and putting the resulting  
directory into my application bundle.)

On install or launch, my app would install the HG tools in a user- 
accessible location, and the user would be notified that this  
Mercurial installation can be used independently of my app; I'd also  
explain what Mercurial was, and point to the project page and the  
source (and, of course, the source for any changes I might have made  
in Mercurial).

Does this sound reasonable, or problematic?

My intent is certainly not to obscure the GPLd subsystem, or to  
somehow claim that it is my own.  My intent is simply to use good  
technology to solve domain-specific problems in a way that's simple  
and intuitive.  Using and promoting Mercurial seems like a far better  
solution for everyone than writing my own proprietary version control  
framework.  I also understand the intent of the GPL, however, and I'm  
trying to find a middle ground -- if at all possible.  Finally, I  
understand that this is a larger issue than Mercurial itself.

BTW, lest anyone think that I'm a corporate raider -- I've been using  
GPLd software since the GPL's inception, and have worked on embedded  
products that used a Linux kernel.  It's just that I've never quite  
been in exactly *this* situation, which is why I'm seeking clarity.


PS: Am I missing email, or did you reply to a private email from  
Emanuele?  I can't find his original anywhere, including the  
mercurial-devel archives.

More information about the Mercurial-devel mailing list