Subject: Re: Packaging software built with Cygwin
From: Jay Maynard <[email-masked]>
To: [email-masked]
Cc: Jay Maynard <[email-masked]>
Date: Tue, 4 Feb 2003 19:46:53 -0600

On Tue, Feb 04, 2003 at 06:27:39PM -0500, Igor Pechtchanski wrote:
> You are aware that linking against the Cygwin DLL automatically makes your
> software GPL'ed, right?

Not according to http://cygwin.com/licensing.html:

"In accordance with section 10 of the GPL, Red Hat permits programs whose
sources are distributed under a license that complies with the Open Source
Definition to be linked with libcygwin.a without libcygwin.a itself causing
the resulting program to be covered by the GNU GPL."

If, despite this, Hercules is somehow covered by the GPL, then our only
choice will be to stop distributing a Cygwin version of Hercules, in either
source or binary form, as relicensing Hercules under the GPL will never
happen.

> And you are also aware that, if you distribute the Cygwin DLL, you have to
> distribute it with the source used to build it, correct?

If that's the case, then I won't distribute the DLLs. I can't afford to keep
around multiple versions of the source code corresponding with the multiple
versions of the DLLs needed for multiple versions of Hercules.

> However, you don't have to maintain multiple versions of the source code -
> only the source of the cygwin DLL that you distribute.  Thus, if you
> always update the cygwin DLL on your mirror to the latest available one,
> you can keep only one (the latest) version of the source there.

Unfortunately, I keep multiple versions of Hercules around. Since each
version of Hercules is compiled against a different version of Cygwin, that
means that I need to keep the corresponding DLLs around (since mixing them
has proven to be problematical), and that means I need to keep the source,
too.

> But don't despair.  You can do even better than that.  You don't have to
> distribute the cygwin DLL from your mirror *at all*.  All you need to do
> is include the "cygwin" package and the others you need in the "requires"
> list for your ("hercules"?) package, and instruct the users to select one
> of the standard mirrors along with yours in the setup mirror list.

Erf. This assumes that the user will use the Cygwin setup routine to install
Hercules. So far, there's been no need for that. Hercules is intended as a
standalone package which can run with only the required DLLs installed, and
none of the rest of Cygwin. The Hercules distribution is a self-extracting
.ZIP, self-contained.

> all the packages that it depends upon (i.e., those in its "requires" list)
> will also be installed.  Of course, this will install all of the
> "standard" "Base" category, but it's not that large, and, chances are,
> your package depends on most of it anyway.  All you'll have to do is make
> sure that your package works with the latest cygwin1.dll... ;-)

In general, when cygwin1.dll changes, Hercules breaks.

> Hope this made sense,

It did, but I'm not sure there's a lot of help there...

--
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/