Recommended Posts

what i've been doing recently:

i've been trying to solve the prerequisite problem! i've been experimenting with the solution based around timestamps. i have a good framework setup, however the meat of the functionality is what i've been struggling with. you see, when NSIS gets a 'last modified' timestamp it's trying to access a 64bit number. NSIS can only handle 32bit numbers and so has to fetch it as two separate numbers. since the numbers are binary (and taken as signed numbers too) you can't just print out the decimal representation of each, one following the other because due to being thought to be two separate signed numbers they are converted to decimal from binary int he wrong way. so first of all i had to work out how to convert the numbers correctly. another spanner in the works was that i was comparing the result with one from PHP so i could make sure i ended up with the correct result, however win32 and PHP use two different epochs (reference point in time from which a measurement of time is taken), 369 years apart, which had a huge impact on the result when you consider that the results are represented as seconds, and this confused me for a while.

after i sorted that out, i then needed to work out how to do it in code, because actually i don't need to do such calculations in code, that was just to make sure i understood it all correctly. however firstly its much more complicated than a little maths if i do it in code, and second i hit another stumbling block first...

the second stumbling block is the difference between timestamps from a windows system using the FAT file system and the NTFS file system. NTFS stores all timestamps from UTC+0, whereas FAT stores all timestamps depending on the timezone and DST settings of the system. so, the complication this arises is now as well as fetching the timestamp and doing some maths, i've also got to do a system call to fetch the file system type, if FAT then get the timezone offset from UTC+0 and do more maths to convert the timestamp to UTC+0.

however the bigger problem is whether moving files around from system to system actually converts times to the timezone of the system it's then on.

also, now that the script is going to use 'setoverwrite ifnewer' to decide whether to overwrite files when installing, how does this problem introduced by NTFS filetimes affect this, or does NSIS grab the timezone settings of the machine the release is compiled on so it can compensate for the difference when doing the 'ifnewer' check...

the prerequisite check is getting a bit complicated, so i'm going to look at other easier solutions, however i still need to investigate the above somehow because it could affect the 'ifnewer' check.

the other solution i'm going to look at was suggested by TheGratefulNed above, as is extremely simple, we simply tack a number onto the filenames of the rti files and increment it with each release. just a three digit number would provide 1000 releases, we can do this individually for each line of releases so the number of different releases (2k/xp/2k3/vista/etc) have no effect. lets say we have 12 releases a year though and allow for say an average of 3 re-releases a year (mistakes and releases have to be released again), then 1000 / 15 would do us good for 66 1/2 years, and current windows editions are definataley going to be history by then.

the only issues, with dynamic file names, will i be able to get the script to find a future rti file with an unknown number attached, and will people compiling releases remember to increment the number with each new release.

one of today's releases failed to install due to not meeting prerequisites. KB935966 requires C:\WINNT\system32\dns.exe to be there. if a solution to the prerequisites problem is getting too complicated maybe a compromise solution can be found. can AP look at the error code returned by update.exe and at the end of installing all updates list those that failed due to prerequisites not being met? this would be an improvement as at the moment AP doesn't give any indication why an update failed.

@theblazingangel here is C:\WINNT\KB935966.log

[KB935966.log]
0.320: ================================================================================
0.320: 2007/05/08 22:53:31.677 (local)
0.350: f:\50a4f3de5b36b6bd33\update\update.exe (version 6.2.29.0)
0.380: Hotfix started with following command line: 
0.510:  C:\WINNT\system32\dns.exe is Not Present
0.510: Condition Check for Line 1 of PreRequisite returned FALSE 
0.550: ReadStringFromInf: UpdSpGetLineText failed: 0xe0000102
0.550: KB935966 Setup encountered an error:  Setup cannot continue because one or more prerequisites required to install KB935966 failed. For More details check the Log File c:\winnt\KB935966.log
0.590: ReadStringFromInf: UpdSpGetLineText failed: 0xe0000102
0.590: Setup cannot continue because one or more prerequisites required to install KB935966 failed. For More details check the Log File c:\winnt\KB935966.log
8.161: Message displayed to the user: Setup cannot continue because one or more prerequisites required to install KB935966 failed. For More details check the Log File c:\winnt\KB935966.log
8.161: User Input: OK
8.161: Update.exe extended error code = 0xf0f4
8.161: Update.exe return code was masked to 0x643 for MSI custom action compliance.

im running w2k

@gandolas checking for dns.exe should be ok..though there may be more than that as a prerequisite. the log file states that it failed the check for line 1 on my w2k setup so this implies there may be further checks. i can investigate further in a test environment..create a dummy dns.exe and run the update and see if there are more prerequisites. but i think just checking for dns.exe does the trick.

I don't know if any other user had this problem, but after installing the latest Cumulative Security Update for Internet Explorer 6 (KB931768) (from May 2007), the Windows Update site says that i need:

- KB867801 from 7/30/2004

- KB832894 from 2/2/2004

all of them also Cumulative Security Update for Internet Explorer!!

They have broken something with the latest hotfix...

Edited by gandolas

yes posted in The Hotfix Depot thread:

Windows Update found 3 new updates on W2K today (Tue. 8 May):

KB867801

KB931768

KB890830 Malicious software removal tool May 07

IE6.0sp1-KB931768-Windows2000-x86-ENU.exe installed fine. then did a restart as required.

MRT also installed fine.

but on running IE6.0sp1-KB867801-x86-ENU.exe it show message box "This update requires IE 6.0 service pack 1 to be installed" ?? i have IE 6.0 sp1 as my system is fully up to date. has WU given wrong info?...uncompressing IE6.0sp1-KB867801-x86-ENU.exe shows files dated 7 July 2004...an old update?

Two critial updates are released today, WU found 2, but kb867801 didnt work for me..

the update im missing ive found..Windows2000-KB935966-x86-ENU.EXE WU didnt list it...

WU didnt list KB832894...cumulative update thats what KB931768 is! ms have messed up here...

see recent post by @blaze, look like ms haven't included all updates in the latest IE6/7 cumulative update.

then again maybe its just a WU detection problem..

Edited by glutton4sw

I'm sure we could have sent you an outdated (February) version but we didn't. You'll receive May's version, don't worry. And I'm sure you were contacted by SteelTrepid (the CD sales manager) that explained you the situation. If you wanted your money back, you would get it.

You have to see that we are under a great stress, everyday people asking/demanding us to release a new version. If we don't release them, it's because they aren't ready.

And many times people forget that we aren't Microsoft. It's not our obligation to provide you this package. We do it because we want to help people, but many people don't realize that.

/rant off

Same as before:

Hotfix started with following command line: 
C:\WINDOWS\system32\snmp.exe is Not Present

so you have to create the following 2 bottom lines in the module:

(...)
[SystemComponents]
InternetExplorer=ANY
WindowsMediaPlayer=ANY
DotNetFramework=ANY
WindowsInstaller=ANY
MSNMessenger=ANY
ComponentFile=system:\snmp.exe
ComponentVersion=ANY
(...)

:)

Hi I am a new member to this forum but have been on this sight a lot for information and have used autopatcher for a while now so I would like to thank blaze and the others who have worked hard on this project, you sure have saved me many many hours of work. Its kind of funny actually, I wanted to do this very same thing and decided to look to see if it had indeed been done and what do you know I found autopatcher. I was like thank God I don't have to do all this work haha. I am a computer tech and I do some programming using the dot net framework so if I can do anything at all please by all means let me know. I think it is wonderful what yall are doing. Anyways thanks for the hard work and dedication to something you choose to do on your own. You may run into problems and what not and impatient people, but there are a lot of very appreciative folks out there like me. Take all the time you need because I know the outcome is going to be great and will save me many more hours of work. Job well done guys...

David Wilkerson

Blaze, you may want to look at this before the next release.

It fixes the problem with MSVHOST taking 100% CPU resources (Windows Update)

(this problem has been getting worse for the last 2 months)

It will ship on May 22nd but is being issued on MSDN right now.

I downloaded and installed without problem and it fixed the CPU usage.

http://support.microsoft.com/?kbid=927891

http://download.windowsupdate.com/v7/windo...Agent30-x86.exe

@rscomp, already got it

@everyone

ok, a few days ago a member of the autopatcher office team contacted me about something which resulted in me making another change to all the modules in the new releases, so that took a bit of time. i'm glad though because i found i hadn't made a previous change to modules in the addon packs which would have broken them.

then i found a problem with my install script when run in silent mode, i didn't realise that most of my functions were being skipped so i spent a day re-writing code to fix the problem and really improved a chunk of code in the process.

after that i decided a message box was definitely not good enough for prerequisite error messages so i've designed a custom page for that and done a bunch of work towards the framework of the prerequisite check.

tomorrow i need to spend loads of time driving because i'm retaking my driving test the day after. then the day after that it's my 21st and i have relatives coming over. i will be working on autopatcher at every opportunity i get though as usual.

all i have left to do is complete this darn prerequisite check and then it's sorted.

but it's not so easy. firstly i have realized that whatever solution i go with it needs to involve a version number of some sort, i was going to go with a three digit number that could be incremented with each release, but now i've realised thats no good because someone could easily make a mistake and to get the number of a previous release you would need access to the previous release which isn't good for someone taking over from someone else. instead i will go with an eight digit number representing the year, month, and then version e.g. 20070502 would be used for a release created in year 2007, month 05, and this is the second (or maybe third) version/edition meaning the user had to re-release it (e.g. like gandolas' vista release this month).

anyway, the bigger problem is what the solution will be

1) timestamps i previously ruled out because of issues surrounding NTFS/FAT timestamp conflicts, that however no longer seems to be an issue after all, buts it's still a pretty complex solution anyway so i'm ruling it out.

2) put a version in the filename of rti files

3) put a version in the summary field of rti files

4) put a version in separate .ver files, one will accompany each rti file

i won't go into much details, but choosing which of the remaining three solutions to go with is really complicated because it has such a big impact on the script, as well as the person creating the release. all solutions have good and bad points. once i know what i'm doing i should be able to hack it in and finalise the script within a couple of days.

i'm still extremely confident that it will be released this month and fairly soon.

Good luck with your driving test, took mine in Manchester 41 years ago, LOT less traffic.

Relax and pass, that's what I was told.

Almost failed my test here in the USA, left the test station driving on the left hand side, the tester laughed and said "we drive on the right hand side here, give it a try"

All the best.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Ahh, I didn't know that. It makes sense. I was thinking I would be fine with 50 hours, but 100 is close enough that I wouldn't feel like I am paying for more than I am using. I might check it out sometime.
    • Google's next-gen Tensor AI chips might be produced by Samsung, report says by Hamid Ganji Image via Google Google’s Tensor Processing Unit (TPU) is produced in collaboration with companies such as Broadcom and TSMC, but a recent report suggests that the search giant is in talks with Samsung to hand over part of the production to the Korean tech company. According to a report by The Information, citing people familiar with the matter, Google has begun talks with Samsung about using its chip manufacturing capacity for the next generation of Tensor AI chips. Google’s upcoming TPUs are reportedly codenamed “Icefish” and will be produced using Samsung's 2-nanometer process technology. Meanwhile, Samsung is expected to produce only a portion of the next-generation Tensor chips, with most of the production remaining at TSMC. The Information says the new Tensor chips are currently in the design stage and are scheduled to enter mass production in 2028. TSMC is generally considered one of the most reliable chip manufacturing partners and is trusted by tech giants such as Apple and Google. However, the growing demand for TSMC’s AI chips, combined with the company’s focus on meeting demand from AI data centers, has reportedly prompted Google to seek additional manufacturing partners for its next-generation TPUs. Besides Samsung and TSMC, Intel could also be assigned part of the production. The Information reported this week is that Google has begun talks with Intel to produce up to three million TPUs in 2028. However, this is not the first time Google has partnered with Samsung on chip production, as Samsung has previously manufactured Tensor chips for Pixel smartphones. Google’s Tensor Processing Unit is used in cloud data centers and competes with NVIDIA’s chips, which currently dominate the market. By relying on in-house chips, Google can not only reduce its dependence on third-party providers but also create new revenue opportunities. The company has already supplied its TPUs to the AI firm Anthropic.
    • Reminder that the Premium and Ultimate plans already come with a 100 hour per month limit, which you then have to pay more to increase in 15 hour blocks.
    • It does invite Linux because MS should have been improving their products all along these years instead chose to ignore the users now this year they’re making all of these improvements to their products where as Linux doesn’t have this kind of problems in fact it has gotten so good I can even play Windows games in Steam that I no longer ever needed Windows to carry on with my life, unlike you still use Windows and chose to try beat down down those who don't use Windows because they love their LG TV. (Surprisingly I actually own a 55” LED LG TV and it has been going strong for almost 14 years, longer than any Sony TV”)
    • As much as I love owning my own hardware, it's hard to argue with the value. I'm not a huge gamer, I'd actually be interested in a cheaper plan with limited monthly hours, or even a pay-by-the-hour plan.
  • Recent Achievements

    • Week One Done
      FBSPL earned a badge
      Week One Done
    • One Year In
      Jim Dugan earned a badge
      One Year In
    • One Month Later
      Tommi118 earned a badge
      One Month Later
    • One Month Later
      sjbousquet earned a badge
      One Month Later
    • Week One Done
      sjbousquet earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      487
    2. 2
      PsYcHoKiLLa
      196
    3. 3
      +Edouard
      155
    4. 4
      Steven P.
      84
    5. 5
      ATLien_0
      69
  • Tell a friend

    Love Neowin? Tell a friend!