This is the mail archive of the mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Packaging software built with Cygwin

On Tue, 4 Feb 2003, Jay Maynard wrote:

> This is probably an FAQ, but I haven't been able to find any answers on the
> FAQ page at
> I'm the maintainer of Hercules, an emulator for IBM mainframe systems that
> runs on Linux, Mac OS X, and other Unix-style OSes, and Windows via Cygwin.
> It's distributed under an OSD-compliant license (the QPL).
> Currently, we distribute the package without any Cygwin DLLs. Many of our
> users would like to install Hercules and the necessary DLLs without having
> to install of Cygwin, or any more than they have to; they're not interested
> in the Cygwin environment more than is required to run Hercules. Further,
> since Cygwin is such a moving target, I'd like to be able to give the users
> an easy way to install the version of the DLLs that corresponds to the
> version of Cygwin which I used to build the package.
> Under what terms can I distribute the DLLs? Can I just build up a .zip file
> with the required files and a copy of the GPL, or will I have to maintain
> multiple versions of the source code for download as well? (If the latter,
> I'll probably blow it off entirely; I don't have that kind of disk space.)
> If I can't distribute the files themselves, is there a simple way to
> distribute a file that can be fed to setup.exe that will result in only the
> needed files being downloaded?


You are aware that linking against the Cygwin DLL automatically makes your
software GPL'ed, right?  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?

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.

To answer your last question, setup.exe uses a file called setup.ini,
the format of which is described at <>
(but be sure to use the format for the correct setup version).  You can
set all the packages you want installed to the "Base" category, so the
users can simply point their setup.exe to your mirror and click "Install".

However, as the case with NetworkSimplicity's ssh product showed, it's not
a good idea to distribute your own cygwin1.dll, especially if you put it
in a non-standard location or modify it in any way, as it falls out of
date with the "official" cygwin1.dll...

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.  Then,
when they select your package to be installed (which would happen
automatically if you put it in the "Base"  category in your setup.ini),
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... ;-)

Hope this made sense,
      |\      _,,,---,,_
ZZZzz /,`.-'`'    -.  ;-;;,_
     |,4-  ) )-,_. ,\ (  `'-'		Igor Pechtchanski
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

Oh, boy, virtual memory! Now I'm gonna make myself a really *big* RAMdisk!
  -- /usr/games/fortune

Unsubscribe info:
Bug reporting:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]