This is the mail archive of the cygwin 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]

recommendations for 3rd party distributors?



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@indiana.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/


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