Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm 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 Date: Mon, 14 Feb 2005 09:54:41 -0500 (EST) From: Dick Repasky To: cygwin AT cygwin DOT com Subject: recommendations for 3rd party distributors? Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-IsSubscribed: yes Every so often a query surfaces about cygwin dll version compatibility. What would be useful is a set of recommendations that can be used by 3rd party distributors of the cygwin dll to minimize the chance of version collisions with installed instances of cygwin and with other 3rd party software that is distributed with cygwin dlls. Everyone should benefit from a set of recommendations: cygwin users will have fewer problems, 3rd party distributors will have fewer problems, and cygwin mailing list subscribers will have less mail. After searching the mailing list archives and finding Igor Pechtchanski's post (http://www.cygwin.com/ml/cygwin/2003-10/msg00605.html), reading the source code, tinkering and testing, I've come up with a list. I ask readers of the cygwin mailing list for comments and suggestions. Are there errors in the list that I do not see? Do you have suggestions for improving the list? The recommendations are: 1) Use a distinctly named shared memory area in the cygwin dll. 2) Use a distinctly named registry key for storing cygwin file system mount points. 3) Identify the origin of the cygwin dll in the cygwin dll. These recommendations require that the cygwin dll code be modified and that the dll be recompiled. 1) The name of the shared memory area is set in winsup/cygwin/include/cygwin/version.h. Change the value of the constant CYGWIN_VERSION_DLL_IDENTIFIER to something unique. Currently, it is "cygwin1". You might change it to "acmeapp1". It is best to follow cygwin naming conventions: retain the number that is at the end of the current cygwin name. 2) The name of the registry key tree that is used to store information about cygwin is also set in winsup/cygwin/include/cygwin/version.h. Change the value of the constant CYGWIN_INFO_CYGNUS_REGISTRY_NAME to something unique. Currently, it is "Cygnus Solutions". You might change it to "ACME Inc". 3) Identifying information is included in the dll from constants that are defined in winsup/cygwin/include/cygwin/version.h. Identify your organization as the origin of the cygwin dll by adding a line that defines the constant CYGWIN_INFO_DLL_ORIGIN. An appropriate define might be: #define CYGWIN_INFO_DLL_ORIGIN "www.acme.com" . Don't use the form "http://www.acme.com" because it won't survive internal editing. These changes work under the conditions that I have tested them. Comments? Suggestions? Thanks, Dick Repasky ----------------- Dick Repasky Bioinformatics Support UITS Cubicle 101.08 Indiana University USA rrepasky AT indiana DOT edu -- 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/