Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Fri, 28 Mar 2003 11:18:17 -0500 From: Greg Freemyer Subject: cygwin licensing [was: [re: tar and gzip]] To: Chris January , BB , "Cygwin AT Cygwin DOT Com" Mime-Version: 1.0 Organization: Norcross Group Content-Type: Text/plain Message-Id: <20030328161539.QZMN11325.imf33bis.bellsouth.net@tiger2> Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id h2SGDqV02704 Good write-up. Is any portion of cygwin covered by the LGPL instead of the GPL? http://www.gnu.org/copyleft/lesser.html The LGPL explicitly allows proprietary software to be built on top of opensource libraries. TIA Greg -- Greg Freemyer >> > > 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 >> on >> > any Cygwin source code. Does it execute the Python script which >> executes >> > tar.exe? If it does, I don't think even that would put it under the >> GPL. >> > The GPL states that the "act of running the Program is not restricted". >> > Your program can execute Cygwin binaries without it becoming GPL >> software. >> > >> > If you link to Cygwin source code, then your program would be a >> derivative >> > 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 >> to >> > 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) >> of >> 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 >> a >> > separate product. The DLL would have no dependencies on any Cygwin >> source >> > or binary. Your Cygwin based application could us it just like any >> other >> > third party library without providing source code for the DLL. I >> > don't see >> > GPL language that would prevent this. >> >From the GPL FAQ >> (http://www.gnu.org/licenses/gpl-faq.html#LinkingWithGPL): >> 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 >> have >> to GPL my program? >> Yes. >> and: >> What is the difference between "mere aggregation" and "combining two >> modules >> into one program"? >> Mere aggregation of two programs means putting them side by side on >> the >> 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 >> a >> 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, >> do >> 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, >> rpc, >> function calls within a shared address space, etc.) and the semantics of >> the >> 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 >> communication >> 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. >> and: >> I'd like to incorporate GPL-covered software in my proprietary system. Can >> I >> do this? >> You cannot incorporate GPL-covered software in a proprietary system. >> The >> 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 >> be >> released under the GPL if it is released at all. This is for two reasons: >> to >> make sure that users who get the software get the freedom they should >> have, >> 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 >> program. >> The difference between this and "incorporating" the GPL-covered >> software >> 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. >> So >> 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 >> of >> the GPL-covered software in the collection. >> If people were to distribute GPL-covered software calling it "part of" >> a >> system that users know is partly proprietary, users might be uncertain of >> their rights regarding the GPL-covered software. But if they know that >> what >> they have received is a free program plus another program, side by side, >> their rights will be clear. >> and: >> 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 >> have >> 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, >> so >> 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 >> change >> and recompile the program. >> > According to the GPL, you can "aggregate" your proprietary program with >> a >> > 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 >> only >> > 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 >> physically >> > performing source distribution, a complete machine-readable copy of the >> > corresponding source code, to be distributed under the terms of Sections >> 1 >> > 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 >> Cygwin >> > 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 >> copy >> the corresponding source code by FTP, in addition to the mail-order >> option, >> but FTP access to the source is not sufficient to satisfy section 3 of the >> GPL. >> 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 >> you >> by anonymous FTP, fine--that does the job. But not every user can do such >> a >> download. The rest of the users are just as entitled to get the source >> code >> 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 >> it >> > remains in force when I download an electronic version of the source. >> I'd >> > 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 >> version >> 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 >> (as >> well as othe restrictions). >> > If an electronic notice is ok, you could present downloader's a >> statement >> > 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 >> think >> you could mount an interesting defence based on this if someone accused >> you >> 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. >> Chris >> -- >> 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 Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/