Wednesday, May 8, 2013

Really silly bug found in LiveUpdater

Hello to everyone! First the good news: Icaros Desktop 1.5.2 is ready. But I think I will announce it in a better fashion later. Then, the curious one: I've found a little quirk in LiveUpdater that, strangely enough, no one has ever reported to me. In practice, instead of selectively update contents in Extras: depending on your first installation choices, it copies everything it finds in the Extras content of update packs. For instance, if you have installed just "Games" in Extras, but the update pack also includes Development, Multimedia and Networking stuff, it will copy onto your hard drive all them. Not a great issue for most people (they may never notice), but it can get a little nastier if you didn't install Extras development stuff on first place. Once LiveUpdater will be finished, in fact, you will find a Extras/Development dir in your hard drive, hence Icaros startup files will try assigning paths that don't actually exist. How can this be solved? For now, with a Do-It-Yourself procedure I am going to explain here:

1) open sys:tools/Lupd

2) from right click menu, select window -> show -> all files

3) double click on "copyfiles" script to edit it.

4) scroll down to the middle/end and carefully look for these lines:

echo Copying Extras (it will take a while...)
LIST env:Icaros/icinstall NOHEAD FILES LFORMAT="Echo Updating Extras - %N*NIF ${%P%N} EQ True*N copy sysource:Extras/%N Extras:%N ALL FOOVR NOPRO*NEndIf" >ExtCopy
Execute ExtCopy
; delete ExtCopy >NIL:


copy FROM sysource:Extras extras: ALL QUIET FOOVR NOPRO


5) Notice the last line, the one in red colour: it will silently copy all contents from a "sysource:Extras" directory to your extras: one, overwriting everything it will find. Nothing wrong if this still was Icaros 1.3 or 1.4, but not very nice on 1.5, since we have now that nice package selector when you install it. So, delete that red line and save, end of the bugfix. Updating task for extras will be correctly handled by the other lines.

What did it happen? In practice, when I was modifying LiveUpdater to work with the new package managing stuff, I forgot to remove the line I was about to replace, so it survived until today. I'd like to have added this fix to Icaros 1.5.2, but unluckily all 1.5.2 files are already on the server, waiting for the last green lights, and rebuild everything just for this minor fix doesn't worth the effort. I plan to release a better LiveUpdater in the future, with better enhancements (and also this fix), so you can for now edit the file by yourself, or just download it from here:

> Download fixed version of "copyfiles" (5 KB)

and place it in SYS:Tools/LUPD replacing the old one.