|
|
Subscribe / Log in / New account

Cygwin

Cygwin

Posted Nov 19, 2008 20:34 UTC (Wed) by fuhchee (guest, #40059)
Parent article: MinGW and why Linux users should care

For completeness, the article might have mentioned cygwin, which could have been a fine POSIX layer for running libvirt etc. on windows. It was apparently not selected because its GPL license conflicts with the stated desire to aid proprietary software vendors in using libvirt.


to post comments

Cygwin

Posted Nov 19, 2008 21:03 UTC (Wed) by dlang (guest, #313) [Link] (12 responses)

cygwin doesn't let you create native windows apps, it lets you run *nix apps on windows. many people aren't willing to install an entire cygwin environment just to run one app, and in many cases things running with cygwin are less effician (and definantly less integrated) with the rest of the windows systems.

this is why most apps bother with a windows port in the first place instead of just telling people to use the *nix version under cygwin (many apps have tried this initially, but the preasure doesn't let up)

Cygwin

Posted Nov 19, 2008 21:14 UTC (Wed) by zeekec (subscriber, #2414) [Link] (2 responses)

Cygwin can create native Window executables that don't use the compatibility layer. I believe that it actually uses MinGW.

Cygwin can not do this!

Posted Nov 19, 2008 21:19 UTC (Wed) by khim (subscriber, #9252) [Link] (1 responses)

Cygwin can create native Window executables that don't use the compatibility layer.

Nope. There are no way.

I believe that it actually uses MinGW.

Yes, you can run MinGW under Cygwin as well and so it's possible to create native execulables this way. But... what's the point? You can run MinGW under Linux directly without WINE/Cygwin overhead!

Cygwin can do this!

Posted Nov 20, 2008 18:02 UTC (Thu) by zooko (guest, #2589) [Link]

Yes, it can. The cygwin gcc compiler accepts an option named "-mno-cygwin". If you pass that option, then it produces a normal Win32 executable which does not require cygwin1.dll.

Here is a HOWTO on how to use it, written in 1999:

http://www.delorie.com/howto/cygwin/mno-cygwin-howto.html

Cygwin

Posted Nov 19, 2008 21:25 UTC (Wed) by jengelh (guest, #33263) [Link] (8 responses)

>many people aren't willing to install an entire cygwin environment just to run one app,

All you need is cygwin1.dll and whatever other DLLs programs (including the Windows native ones) normally want to use.

Cygwin

Posted Nov 19, 2008 22:40 UTC (Wed) by rwmj (subscriber, #5474) [Link] (7 responses)

cygwin1.dll is GPL'd, so incompatible with LGPL libraries.

And it does a whole layer of Unix emulation, whereas this is a direct port to the Win32 API.

LGPL is compatible with Cygwin's license (GPL+exceptions)

Posted Nov 20, 2008 2:50 UTC (Thu) by dwheeler (guest, #1216) [Link] (6 responses)

First of all, the LGPL is typically compatible with the GPL, depending on their versions. See my FLOSS License Slide for more information on license compatibility.

BUT Cygwin's license is special: you can use ANY open source software license, without charge, with Cygwin. You can also use Cygwin to run closed source software, but you have to pay extra for that privilege. The Cygwin license, which is the GPL plus some exceptions, is at: http://www.cygwin.com/licensing.html.

The Cygwin license says: "Red Hat permits programs whose sources are distributed under a license that complies with the Open Source Definition [See http://www.opensource.org/docs/osd/ for the precise Open Source Definition and a list of the licenses certified by OSI as conforming to that definition] to be linked with libcygwin.a/cygwin1.dll without libcygwin.a/cygwin1.dll itself causing the resulting program to be covered by the GNU GPL. This means that you can port an Open Source application to Cygwin (TM), and distribute that executable as if it didn't include a copy of libcygwin.a/cygwin1.dll linked into it... Red Hat sells a special Cygwin (TM) License for customers who are unable to provide their application in open source code form."

LGPL is NOT compatible with Cygwin's license (GPL+exceptions)

Posted Nov 20, 2008 8:07 UTC (Thu) by rwmj (subscriber, #5474) [Link] (3 responses)

The people who are using libvirt are mostly developing a mix of in-house and proprietary
applications. They don't want to open source their code, nor do we want to discriminate against
them by making them by a special license. They don't need to buy a special license for libvirt on
Linux, nor to use proprietary APIs such as VMWare API / XenAPI.

LGPL is NOT compatible with Cygwin's license (GPL+exceptions)

Posted Nov 20, 2008 12:21 UTC (Thu) by fuhchee (guest, #40059) [Link] (2 responses)

nor do we want to discriminate against them by making them buy a special license

Since you consider licensing-based incentives to create free software as discrimination, what prevented you from (say) releasing libvirt into the public domain?

LGPL is NOT compatible with Cygwin's license (GPL+exceptions)

Posted Nov 20, 2008 12:35 UTC (Thu) by rwmj (subscriber, #5474) [Link]

LGPL protects the libvirt code while not imposing itself on other code that we didn't write.

As a free software developer yourself, you should know the difference between public domain, LGPL
and GPL.

LGPL is NOT compatible with Cygwin's license (GPL+exceptions)

Posted Nov 20, 2008 12:36 UTC (Thu) by nix (subscriber, #2304) [Link]

This is a *management layer*. It's going to get used by people who have existing virtualization systems and want to manage them. Nobody, but nobody is going to say 'hey! my management layer uses GPL, so I should switch virtualization systems to one that is GPL!'. They'll just not use libvirt.

This is a classic example of a library that is better LGPLed than GPLed.

LGPL is compatible with Cygwin's license (GPL+exceptions)

Posted Nov 21, 2008 17:39 UTC (Fri) by giraffedata (guest, #1954) [Link] (1 responses)

Red Hat permits [open source programs] to be linked with libcygwin.a/cygwin1.dll without libcygwin.a/cygwin1.dll itself causing the resulting program to be covered by the GNU GPL.

This wording shows a typical misunderstanding of copyright, wherein someone thinks a copyright license is something that restricts you in distributing software.

If the resulting program is not covered by GPL, nobody has Red Hat's permission to distribute it at all. (We assume of course that it's a derivative work so that Red Hat has copyright, because otherwise nobody needs Red Hat's permission and the whole point is moot).

I believe what the license means to say is, "... without Red Hat asserting any copyright over the resulting program due to libcygwin.a/cygwin1.dll itself."

LGPL is compatible with Cygwin's license (GPL+exceptions)

Posted Nov 23, 2008 0:16 UTC (Sun) by vonbrand (subscriber, #4458) [Link]

The Red Hat people must have done their assignment before distributing the library under this license... and they are careful with legal stuff.

In any case, it is not the license which restricts distribution, it is copyright law. All the license does is allow you to do stuff the law forbids.

Cygwin

Posted Nov 19, 2008 21:46 UTC (Wed) by zooko (guest, #2589) [Link]

Also a little-understood fact is that the cygwin toolset can be used to build Win32 executables which do *not* require the cygwin1.dll (and therefore are free of GPL requirements, as well as of any performance problems of going through an emulation layer). This is generally accomplished by adding the magic flag "-mno-cygwin" to gcc.

Personally, I've never yet had a need to learn how to install and use the mingw toolset, since the cygwin toolset that I happened to learn first already does everything I need, including producing GPL-free, Win32 executables.

Cygwin

Posted Nov 19, 2008 23:00 UTC (Wed) by danpb (subscriber, #4831) [Link]

Independently of question of Cygwin vs MinGW, the libvirt project chose to use the LGPLv2+ as its license. While there are interesting debates to be had on whether to use GPL vs LGPL for libraries & the FSF has a good article detailing some of the tradeoffs, the libvirt project has decided that the LGPLv2+ best suits our goals.

Having made that decision, we want the same licensing terms to be applicable across all platforms, whether Linux or Windows - we don't wish to penalize Windows users over Linux users. As such the Windows binaries we provide must be LGPLv2+ licensed in line with Linux binaries we ship, and we also wanted to build the binaries from a Linux host machine. While we could have used WINE + Cygwin, we decided that MinGW suited our needs. We've nothing against Cygwin - both MinGW & Cygwin are great open source projects and we're happy to see them both thrive & co-exist. In the same way that we choose to use GTK rather than QT for some apps, does not mean we have anything against QT, it is just a choice to be made. The important thing is that the choice is for a completely open source toolchain & build host OS (Mingw or Cygwin on Linux), over closed source development platform (VisualStudio on Windows).


Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds