cygwin licensing [was: [re: tar and gzip]]

Greg Freemyer freemyer@NorcrossGroup.com
Fri Mar 28 17:30:00 GMT 2003


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.pawlik@people.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/


More information about the Cygwin mailing list

AltStyle によって変換されたページ (->オリジナル) /