This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: installer wakes up Windows File Protection
Type: Stage:
Components: Windows Versions: Python 2.3
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: theller Nosy List: loewis, logistix, thegoldenear, theller, tim.peters
Priority: normal Keywords:

Created on 2003-10-05 08:49 by thegoldenear, last changed 2022-04-10 16:11 by admin. This issue is now closed.

Messages (10)
msg18549 - (view) Author: Pete Boyd (thegoldenear) Date: 2003-10-05 08:49
installing Python 2.3.2 on Windows 2000 SP4 induced the
Windows File Protection, presumably bcos an existing
system file had been replaced by an older version
msg18550 - (view) Author: Tim Peters (tim.peters) * (Python committer) Date: 2003-10-05 18:12
Logged In: YES 
user_id=31435

Changed category to Windows and assigned to Thomas Heller.
msg18551 - (view) Author: Grant Olson (logistix) Date: 2003-10-05 21:21
Logged In: YES 
user_id=699438

I couldn't reproduce this on a stock install of W2K SP 4.


If you're in a position to do so (you'll need the physical CD 
media), could you rebuild your DLL cache?  From the 
command-line "sfc /purgecache && sfc /scannow" should do 
this.  After that, try to install python2.3.2 and see if sfc kicks 
in again.

If you can't do that, you might want to see if the file 
python23.dll somehow manually ended up in the %windir%
\system32\dllcache directory.  As far as I know, thats the 
only file that should be getting shoved into an area the sfc 
cares about.
msg18552 - (view) Author: Thomas Heller (theller) * (Python committer) Date: 2003-10-06 15:38
Logged In: YES 
user_id=11105

I *can* reproduce it - look into the event viewer, category
'System': File replacement was attempted on the protected
system file d:\winnt\system32\msvcirt.dll...

The windows installer tries (in my case) to replace the
version 6.1.8637.0 with 7.0.2600.0.

Looking at python23.dll's dependencies with Dependency
Walker, it seems that msvcirt.dll isn't required by Python
at all, so the solution would be simple: leave msvcirt.dll
out of the installer.

Why is it in the installer at all? Tim?
msg18553 - (view) Author: Tim Peters (tim.peters) * (Python committer) Date: 2003-10-06 15:50
Logged In: YES 
user_id=31435

msvcirt.dll was in the installer when I inherited it from Guido.  
He probably inherited it from Mark (Hammond).  If Mark can't 
remember why it's there either, we should check all the .pyd 
(not just python23.dll) for references to it.  Assigned to Mark.
msg18554 - (view) Author: Thomas Heller (theller) * (Python committer) Date: 2003-10-14 17:29
Logged In: YES 
user_id=11105

It seems I did include msvcrt.dll and msvcirt.dll from my
system directory, but probably the files from VC6 SP5 should
be included.

IMO msvcirt.dll is not used by Python, but msvcirt.dll uses
msvcrt.dll, so it makes sense to include both of these files
in the installer.

Here are the version numbers I found in the various installers:
Python-2.3.exe: msvcrt.dll - 6.1.8637.0, msvcirt.dll -
6.1.8168.0
Python-2.3.2.exe: msvcrt.dll - 7.0.2600.1106, msvcirt.dll -
7.0.2600.0
vcredist.exe: msvcrt.dll - 6.0.8797.0, msvcirt.dll - 6.0.8168.0

The vcredist.exe is from the VC6 SP5 CD.

I will include the latter files in the next installer
(2.3.3), and hopefully everything will be ok then.

Assigned back to myself.
msg18555 - (view) Author: Tim Peters (tim.peters) * (Python committer) Date: 2003-10-14 18:07
Logged In: YES 
user_id=31435

While we're at it, I'd like to question whether we should be 
shipping MS dlls at all.  I'd *like* to question it, but have 
never known how to <wink>:  I don't know that it's necessary 
to ship them, especially since we don't support DOS directly 
anymore.  OTOH, I don't know that no box out there needs 
them either.
msg18556 - (view) Author: Thomas Heller (theller) * (Python committer) Date: 2003-10-14 18:17
Logged In: YES 
user_id=11105

The clearest description *how* to ship these dlls I did find
here:
http://www.jrsoftware.org/ishowto.phtml?a=vc

Of course, this doesn't answer the question *whether* they
should be distributed at all.

And I do know that on a clean Win95 system the MFC dlls were
not present, unless write (aka wordpad) was installed. Don't
remember anymore if this also applied to msvcrt.dll.
msg18557 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2003-10-15 21:13
Logged In: YES 
user_id=21627

The answer for the "why" probably is that Win95, out of the
box, does not include msvcrt.dll (only msvcrt20.dll and
msvcrt40.dll). Many users of Win95 probably have msvcrt.dll
because they have installed MS Office or some other software
including it. Any kind of patch to Win95 (including Win95B)
installs msvcrt.dll also.

To solve this problem, I would suggest to discontinue
support for Win95 in Python 2.4. But then, I also suggest to
use VC7.1 for Python2.4, which brings up the issue of
distributing MSVCR71.dll...
msg18558 - (view) Author: Thomas Heller (theller) * (Python committer) Date: 2003-10-16 19:17
Logged In: YES 
user_id=11105

Python-2.3.2-1.exe should have fixed this problem.
History
Date User Action Args
2022-04-10 16:11:37adminsetgithub: 39371
2003-10-05 08:49:52thegoldenearcreate