recommendations for 3rd party distributors?
Mon Feb 14 21:22:00 GMT 2005
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
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
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?
UITS Cubicle 101.08
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
More information about the Cygwin