This is the mail archive of the
cygwin-developers
mailing list for the Cygwin project.
Re: Avoid collisions between parallel installations of Cygwin
- From: Corinna Vinschen <corinna-cygwin at cygwin dot com>
- To: cygwin-developers at cygwin dot com
- Date: Tue, 20 Oct 2009 16:00:26 +0200
- Subject: Re: Avoid collisions between parallel installations of Cygwin
- References: <4ADB2110.80606@cwilson.fastmail.fm> <4ADB469D.5010506@gmail.com>
- Reply-to: cygwin-developers at cygwin dot com
On Oct 18 17:47, Dave Korn wrote:
> Charles Wilson wrote:
> > Corinna wrote:
> >> You can avoid this problem by defining the resource section in a dynamic
> >> fashion from the start. Each entry consists of the name of the value,
> >> a descriptive text, and the value itself. So, each entry could be a
> >> statically sized structure of 256 bytes like this:
> >>
>
> >> For instance, if the name is "blurb", cygcheck could be advised to
> >> understand an option `--blurb' to set the value.
> >
> > That will help, but won't completely eliminate the problem. It's still
> > conceivable that you might need to change even the definition of struct
> > resource_value in version N+1. For instance:
>
>
> > And even if you start off with THAT, you might discover that you need so
> > other change to the struct definition in version N+2. I don't know if
> > this is a realistic concern. Your original approach is probably
> > sufficient -- my concerns are probably over-engineering.
>
> I don't think we should worry. Ok, so older cygchecks won't be able to
> parse newer DLLs. As long as it does a version number check and issues a nice
> error message and fails safe, no problem. And remember, we will control the
> horizontal *and* the vertical. Since the Cygwin DLL and the cygcheck utility
> are both part of the same CVS tree and are always built and distributed
> together in synchronised versions, how exactly will a problem arise, unless
> someone deliberately manually installs just the DLL from a new release
> package, or just the cygcheck exe from an old one?
Actually I think we can make it even more simple. Assume we start with
a single USHORT value, which is what we're planning, and two versions
later we add a ULONG value. After a successful call to FindResource(),Cygcheck can ask for SizeofResource (). The size of the resource is a simple
way to figure out which data is available in that version of the Cygwin
DLL.
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Project Co-Leader cygwin AT cygwin DOT com
Red Hat