X-Recipient: archive-cygwin AT delorie DOT com X-Spam-Check-By: sourceware.org Message-ID: Date: Tue, 18 Mar 2008 14:15:58 -0700 From: "Dan Kegel" To: cygwin AT cygwin DOT com Subject: FAQ suggestion MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Google-Sender-Auth: c92a28bda0357087 X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: 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 The last company I worked for tried bundling Cygwin (with sources, natch) as part of a product. Predictably (to those who have tried this), this caused big problems because it conflicted with any Cygwin installed on customers' machines. Looking at the archives, I see at least a couple other people have tried to do this, e.g. http://www.cygwin.com/ml/cygwin/2001-10/msg00625.html http://www.cygwin.com/ml/cygwin/2001-10/msg00650.html http://www.cygwin.com/ml/cygwin/2007-03/msg00862.html but the Cygwin developers always reply with "Don't do that. There can be only one instance of cygwin." I'd like to see an FAQ entry about this, e.g. http://cygwin.com/faq/faq.programming.html#faq.bundled.cygwin --- snip -- Q. I want to bundle Cygwin with a product, and ship it to customer sites. How can I do this without conflicting with any Cygwin installed by the user? A. Cygwin is not designed for this; the developers official position is that there should be only one instance of cygwin on any system, and that it should be updated to the latest version constantly. So please don't try. It will only bring you grief. What, you're still here? Move on to the next question, nothing to see here. Oh, ok. If you want to do it anyway, one way to do it is to change four places in the Cygwin source tree and rebuild from scratch, then ship both source and binary of Cygwin with your product. The four places are: - change the updater to point to your own update server, or disable it - change the name of the shared/common memory area - change the location in the registry where Cygwin settings are kept - rename the cygwin1.dll (such that all apps you build know the new name) It's a daunting prospect. One can imagine a shell script that automates producing such a modified version of Cygwin, but nobody has written one yet. --- snip --- How's that look? Corrections welcome. - Dan -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/