Subject | RE: [IB-Architect] Warning!!! Bugs, Support... addition |
---|---|
Author | Olivier Mascia |
Post date | 2000-07-26T14:18:27Z |
Easy fix : for a system DLL, one that belongs to Windows, the installer
should be taught to NEVER, NEVER decide DDL replacement on dates. To be on
the safe side regarding 'SYSTEM' dlls, the installer MUST :
a) On any Windows prior to Windows 2000 : access the version information
stored in the existing DLL (there are Win32 Apis to do that) and in the one
about to be installed. If the shipped one is NEWER (by comparing those
versions numbers), then update (using the well-known 'update on reboot' if
the DLL is in use). Else (versions the same or the existing one newer) skip
silently the file. Do not attempt to install.
b) On Windows 2000 : simply do not even check the versions. Don't update any
system DLL. Never. The Windows File protection system should, by the way,
have been triggered automatically and Windows 2000 should have restored the
right file by itself, recognizing an attempt to replace one of its
systme-file.
c) If you ever depend on an old system DLL and you can't run with the newer
standard one (really special and bad situation, should be avoided), then the
best to do is to install the old DLL right in the same directory as the
executables that require it. Instead of the system directory. Your exe will
use the local one. The rest of the machine will run of the system one.
So there is not only a bug in the Installer used to produce the setup of
Interbase 6 (or a bug in the instructions given to the installer engine),
but this bug is sad enough to bypass the special protection Microsoft added
to Windows 2000. That means MS didn't do its job right (again), but anyway
there is a bug to be fixed. I did not yet had the time to check this : is
the source (script or setup file) of the installer available in the source
ZIP file ?
Is there an interest if I spend some time next week writing a 'Windows
Installer' version of the IB Client and Server setup and contribute that to
the community ? That could be fine for all Windows platforms. But I do not
want to do it if nobody wants it.
By the way, would there be Licensing problems if my own setup (I build my
own setup for Interbase for distribution with my softwares which use it) is
mostly silent, does not display the Inprise billboard screens while
progressing, and configures everything needed based by default on
"C:\Program Files\Interbase" instead of "C:\Program Files\Borland\Interbase"
??
-------------------------- www.tipgroup.com -------------------------
Olivier Mascia T.I.P. Group S.A.
om@... Company Phone +32 65401111
Director, Senior Software Engineer Private Mailbox/FAX +32 43204716
-----Original Message-----
From: Dmitry Kuzmenko [mailto:dima@...]
Sent: Wednesday, July 26, 2000 3:55 PM
To: IB-Architect@egroups.com
Subject: Re: [IB-Architect] Warning!!! Bugs, Support... addition
Hello, David!
"David R. Robinson" wrote:
but the bad news that msvcrt.dll in IB6 distributive is TOO OLD,
much older than msvcrt on my system (02/02/1999), but dated as
NEWER, i.e. 06/23/2000.
Seems that W2K thinking that it is a newer file and installs it over
existing.
I suggest to delete msvcrt.dll from IB 6 distributive and replace it
by the same named file from \SYSTEM32.
--
Dmitry Kuzmenko, Epsylon Technologies.
Welcome to http://ib.demo.ru/ (1251)
To unsubscribe from this group, send an email to:
IB-Architect-unsubscribe@onelist.com
should be taught to NEVER, NEVER decide DDL replacement on dates. To be on
the safe side regarding 'SYSTEM' dlls, the installer MUST :
a) On any Windows prior to Windows 2000 : access the version information
stored in the existing DLL (there are Win32 Apis to do that) and in the one
about to be installed. If the shipped one is NEWER (by comparing those
versions numbers), then update (using the well-known 'update on reboot' if
the DLL is in use). Else (versions the same or the existing one newer) skip
silently the file. Do not attempt to install.
b) On Windows 2000 : simply do not even check the versions. Don't update any
system DLL. Never. The Windows File protection system should, by the way,
have been triggered automatically and Windows 2000 should have restored the
right file by itself, recognizing an attempt to replace one of its
systme-file.
c) If you ever depend on an old system DLL and you can't run with the newer
standard one (really special and bad situation, should be avoided), then the
best to do is to install the old DLL right in the same directory as the
executables that require it. Instead of the system directory. Your exe will
use the local one. The rest of the machine will run of the system one.
So there is not only a bug in the Installer used to produce the setup of
Interbase 6 (or a bug in the instructions given to the installer engine),
but this bug is sad enough to bypass the special protection Microsoft added
to Windows 2000. That means MS didn't do its job right (again), but anyway
there is a bug to be fixed. I did not yet had the time to check this : is
the source (script or setup file) of the installer available in the source
ZIP file ?
Is there an interest if I spend some time next week writing a 'Windows
Installer' version of the IB Client and Server setup and contribute that to
the community ? That could be fine for all Windows platforms. But I do not
want to do it if nobody wants it.
By the way, would there be Licensing problems if my own setup (I build my
own setup for Interbase for distribution with my softwares which use it) is
mostly silent, does not display the Inprise billboard screens while
progressing, and configures everything needed based by default on
"C:\Program Files\Interbase" instead of "C:\Program Files\Borland\Interbase"
??
-------------------------- www.tipgroup.com -------------------------
Olivier Mascia T.I.P. Group S.A.
om@... Company Phone +32 65401111
Director, Senior Software Engineer Private Mailbox/FAX +32 43204716
-----Original Message-----
From: Dmitry Kuzmenko [mailto:dima@...]
Sent: Wednesday, July 26, 2000 3:55 PM
To: IB-Architect@egroups.com
Subject: Re: [IB-Architect] Warning!!! Bugs, Support... addition
Hello, David!
"David R. Robinson" wrote:
>API.
> For what it is worth, I forgot to add that the research that the person
> working on the installer indicated that this was a bug in the MS Setup
> It apparently wasn't reporting the version # right.I don't know how W2K compares existing dll and dll to be installed,
>
> I've installed IB 6 on Win2000 several other times since then and haven't
> seen the problem, so I'm not sure what setup you have to have to duplicate
> it, but it obviously still exists in some cases.
but the bad news that msvcrt.dll in IB6 distributive is TOO OLD,
much older than msvcrt on my system (02/02/1999), but dated as
NEWER, i.e. 06/23/2000.
Seems that W2K thinking that it is a newer file and installs it over
existing.
I suggest to delete msvcrt.dll from IB 6 distributive and replace it
by the same named file from \SYSTEM32.
--
Dmitry Kuzmenko, Epsylon Technologies.
Welcome to http://ib.demo.ru/ (1251)
To unsubscribe from this group, send an email to:
IB-Architect-unsubscribe@onelist.com