This is the mail archive of the
mailing list for the Cygwin project.
cygwin licensing [was: [re: tar and gzip]]
- From: Greg Freemyer <freemyer at NorcrossGroup dot com>
- To: Chris January <chris at atomice dot net>, BB <canofspam at att dot net>, Cygwin at Cygwin dot Com <cygwin at cygwin dot com>
- Date: Fri, 28 Mar 2003 11:18:17 -0500
- Subject: cygwin licensing [was: [re: tar and gzip]]
- Organization: Norcross Group
Is any portion of cygwin covered by the LGPL instead of the GPL?
The LGPL explicitly allows proprietary software to be built on top of opensource libraries.
>> > > Hi all!
>> > >
>> > > I wrote a small script in Python, but it requires two programs to run
>> > > correctly: tar.exe and gzip.exe. Both are in CygWin package.
>> > And that's my
>> > > question: can I bundle both programs and cygwin1.dll with my script?
>> > Script
>> > > is free, but the program that the script comes with is not.
>> > >
>> > > --
>> > > Krzysiek 'Nelchael' Pawlik | C/C++, PHP, OpenGL, WinAPI
>> > > krzysiek dot pawlik at people dot pl | Network Administrator - BAFH
>> > > http://www.ps.nq.pl/pcfaq/ | http://www.ps.nq.pl/nelchael/
>> > >
>> > These are just my thoughts and I'm not a lawyer.
>> > It doesn't sound like your proprietary program is derived from or based
>> > any Cygwin source code. Does it execute the Python script which
>> > tar.exe? If it does, I don't think even that would put it under the
>> > The GPL states that the "act of running the Program is not restricted".
>> > Your program can execute Cygwin binaries without it becoming GPL
>> > If you link to Cygwin source code, then your program would be a
>> > work under the GPL. However, I believe you could also link to another
>> > proprietary third party library without providing it's source code. For
>> > instance, you could link to a Microsoft library without being required
>> > provide Microsoft source code.
>> This is not true. It is ok to link with certain Microsoft DLLs because the
>> GPL makes the following exception:
>> However, as a special exception, the source code distributed need not
>> include anything that is normally distributed (in either source or
>> binary form) with the major components (compiler, kernel, and so on)
>> the operating system on which the executable runs, unless that
>> component itself accompanies the executable.
>> However this exception does not apply to other DLLs, only those considered
>> part of the operating system.
>> > Going one step further, you could put your proprietary code into a
>> > standalone DLL built using Microsoft tools. You could market the DLL as
>> > separate product. The DLL would have no dependencies on any Cygwin
>> > or binary. Your Cygwin based application could us it just like any
>> > third party library without providing source code for the DLL. I
>> > don't see
>> > GPL language that would prevent this.
>> >From the GPL FAQ
>> You have a GPL'ed program that I'd like to link with my code to build a
>> proprietary program. Does the fact that I link with your program mean I
>> to GPL my program?
>> What is the difference between "mere aggregation" and "combining two
>> into one program"?
>> Mere aggregation of two programs means putting them side by side on
>> same CD-ROM or hard disk. We use this term in the case where they are
>> separate programs, not parts of a single program. In this case, if one of
>> the programs is covered by the GPL, it has no effect on the other program.
>> Combining two modules means connecting them together so that they form
>> single larger program. If either part is covered by the GPL, the whole
>> combination must also be released under the GPL--if you can't, or won't,
>> that, you may not combine them.
>> What constitutes combining two parts into one program? This is a legal
>> question, which ultimately judges will decide. We believe that a proper
>> criterion depends both on the mechanism of communication (exec, pipes,
>> function calls within a shared address space, etc.) and the semantics of
>> communication (what kinds of information are interchanged).
>> If the modules are included in the same executable file, they are
>> definitely combined in one program. *** -----> If modules are designed to
>> run linked together in a shared address space, that almost surely means
>> combining them into one program. <----- ***
>> By contrast, pipes, sockets and command-line arguments are
>> mechanisms normally used between two separate programs. So when they are
>> used for communication, the modules normally are separate programs. But if
>> the semantics of the communication are intimate enough, exchanging complex
>> internal data structures, that too could be a basis to consider the two
>> parts as combined into a larger program.
>> I'd like to incorporate GPL-covered software in my proprietary system. Can
>> do this?
>> You cannot incorporate GPL-covered software in a proprietary system.
>> goal of the GPL is to grant everyone the freedom to copy, redistribute,
>> understand, and modify a program. If you could incorporate GPL-covered
>> software into a non-free system, it would have the effect of making the
>> GPL-covered software non-free too.
>> A system incorporating a GPL-covered program is an extended version of
>> that program. The GPL says that any extended version of the program must
>> released under the GPL if it is released at all. This is for two reasons:
>> make sure that users who get the software get the freedom they should
>> and to encourage people to give back improvements that they make.
>> However, in many cases you can distribute the GPL-covered software
>> alongside your proprietary system. To do this validly, you must make sure
>> that the free and non-free programs communicate at arms length, that they
>> are not combined in a way that would make them effectively a single
>> The difference between this and "incorporating" the GPL-covered
>> is partly a matter of substance and partly form. The substantive part is
>> this: if the two programs are combined so that they become effectively two
>> parts of one program, then you can't treat them as two separate programs.
>> the GPL has to cover the whole thing.
>> If the two programs remain well separated, like the compiler and the
>> kernel, or like an editor and a shell, then you can treat them as two
>> separate programs--but you have to do it properly. The issue is simply one
>> of form: how you describe what you are doing. Why do we care about this?
>> Because we want to make sure the users clearly understand the free status
>> the GPL-covered software in the collection.
>> If people were to distribute GPL-covered software calling it "part of"
>> system that users know is partly proprietary, users might be uncertain of
>> their rights regarding the GPL-covered software. But if they know that
>> they have received is a free program plus another program, side by side,
>> their rights will be clear.
>> I'd like to modify GPL-covered programs and link them with the portability
>> libraries from Money Guzzler Inc. I cannot distribute the source code for
>> these libraries, so any user who wanted to change these versions would
>> to obtained those libraries separately. Why doesn't the GPL permit this?
>> There are two reasons for this.
>> First, a general one. If we permitted company A to make a proprietary
>> file, and company B to distribute GPL-covered software linked with that
>> file, the effect would be to make a hole in the GPL big enough to drive a
>> truck through. This would be carte blanche for withholding the source code
>> for all sorts of modifications and extensions to GPL-covered software.
>> Giving all users access to the source code is one of our main goals,
>> this consequence is definitely something we want to avoid.
>> More concretely, the versions of the programs linked with the Money
>> Guzzler libraries would not really be free software as we understand the
>> term--they would not come with full source code that enables users to
>> and recompile the program.
>> > According to the GPL, you can "aggregate" your proprietary program with
>> > GPL'd program on a CD or disk without it being brought under the GPL.
>> > Therefore, delivering them together does not automatically make
>> > your program
>> > GPL software. I think you only need to satisfy the GPL requirements
>> > for the portions of Cygwin delivered by you in binary form (tar.exe,
>> > gzip.exe, cygwin.dll).
>> This is correct.
>> > If you deliver your application along with tar.exe, gzip.exe and
>> > cygwin.dll
>> > on a CD, you could include the source code for the Cygwin
>> > components on the
>> > CD. They don't need to be installed by anyone. Or you could
>> > follow the GPL
>> > and "3b) Accompany it with a written offer, valid for at least
>> > three years,
>> > to give any third party, for a charge no more than your cost of
>> > performing source distribution, a complete machine-readable copy of the
>> > corresponding source code, to be distributed under the terms of Sections
>> > and 2 above on a medium customarily used for software interchange;".
>> > Based on the number of GPL applications distributed only via the
>> > internet, I
>> > would assume that the internet is satisfactory as "a medium
>> > customarily used
>> > for software interchange". Therefore it could be used to satisfy the
>> > written offer of section "3b)". If you allow your application and
>> > binaries to be download from your web site, simply keep a copy of
>> > the source
>> > there for download. I think that you only need to provide access to the
>> > source to only those that download the binaries.
>> I believe the "medium customarily used for software interchange" refers to
>> floppy disks, CD-ROMs and the like.
>> Again from the FAQ:
>> I want to distribute binaries without accompanying sources. Can I provide
>> source code by FTP instead of by mail order?
>> You're supposed to provide the source code by mail-order on a physical
>> medium, if someone orders it. You are welcome to offer people a way to
>> the corresponding source code by FTP, in addition to the mail-order
>> but FTP access to the source is not sufficient to satisfy section 3 of the
>> When a user orders the source, you have to make sure to get the source
>> to that user. If a particular user can conveniently get the source from
>> by anonymous FTP, fine--that does the job. But not every user can do such
>> download. The rest of the users are just as entitled to get the source
>> from you, which means you must be prepared to send it to them by post.
>> If the FTP access is convenient enough, perhaps no one will choose to
>> mail-order a copy. If so, you will never have to ship one. But you cannot
>> assume that.
>> Of course, it's easiest to just send the source with the binary in the
>> first place.
>> > I'm not sure if an electronic written notice is sufficient or
>> > not, but based
>> > on the number of legal notices I've read and agreed to on the Internet,
>> > maybe it is. I've never seen a hardcopy version of the GPL and somehow
>> > remains in force when I download an electronic version of the source.
>> > ask a Lawyer about that one.
>> I think "written offer" here refers to a paper copy.
>> As for the GPL remaining "in force" when you download an electronic
>> of the source: the GPL grants you *extra* rights over and above those
>> normally afforded to you by copyright law. You can choose not to agree to
>> the license. However then you may not exercise those extra rights. So
>> whether the GPL remains "in force" is up to you. However if you decide it
>> doesn't, you may not redistribute the binaries or source you downloaded
>> well as othe restrictions).
>> > If an electronic notice is ok, you could present downloader's a
>> > satisfying the language of section (3b), allow them to print the text to
>> > save a hardcopy version. Then require them to check a box that they have
>> > read the notice and agree to it. If they ever request a copy of
>> > the source
>> > code, you could either send out a CD for a fee or provide them with the
>> > private web site address. Just make sure any email address or
>> > web site you
>> > give out is good for three years.
>> Allowing them to print the text to hardcopy is an interesting idea. I
>> you could mount an interesting defence based on this if someone accused
>> of violating the GPL.
>> > Lastly, the GPL does not require you to cover the cost of performing the
>> > source distribution. If it takes you an hour to burn a CD for someone,
>> > charge for an hour's worth of work.
>> Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
>> Bug reporting: http://cygwin.com/bugs.html
>> Documentation: http://cygwin.com/docs.html
>> FAQ: http://cygwin.com/faq/
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html