WarpIN Release History ====================== V1.0.2 (January 28, 2004) ------------------------- Fixes: -- Korean codepage was broken (was 951). Fixed to 949. -- Taiwan codepage was broken (was 947). Fixed to 950. V1.0.1 (February 2, 2003) ------------------------- Fixes: -- Pressing the "update existing" button in the legacy WarpIN update dialog caused updating to fail when copying wpi2exe, which is no longer part of the distribution. Fixed. -- Selecting "WarpIN" -> "Default directories" crashed because of a broken resource caused by a buggy resource compiler that I accidentally used. Replaced the whole dialog with a formatted version while I was at it. V1.0.0 (November 24, 2002) -------------------------- Fixes: -- Fixed hang at parsing script when package script contained macros referencing other packages. Among others, Martin's XWorkplace widget library suffered from this. -- Fixed wrong script error report with four-part package version numbers. -- Drive info window with container page displayed required space in wrong rows if drive letters were not contiguous. Fixed. Beautified split view in database a little. V0.9.20 (August 11, 2002) ------------------------- Fixes: -- REPLACECLASS was totally broken, at least in V0.9.19, maybe earlier. This caused xshadow to fail during install and even hose the database. Fixed. -- WarpIN finally keeps track of the directories it creates and no longer attempts to delete directories it didn't create. -- Close confirmations in the GUI were totally inconsistent. Fixed. -- WarpIN's startup directory check would fail if its directory contained non-ASCII characters. It would then complain that it was previously used from a different directory (which was the same, really). I have added a Unicode-enabled version of stricmp as well now, so that should work better. -- Opening an archive with WARPIN.EXE no longer blocks PM. -- The back-end would fail on creating files that were several directories deep, if those directories didn't exist already. It would not report a "create directory" error either, but instead report a "file write" error instead, which didn't really help either. Fixed. Time for new features again. -- Full CID support. WIC.EXE is beginning to become a full-fledged command line installer that will eventually be able to do almost everything WARPIN.EXE can do. Type "wic -hi" to get an introduction for now. -- More major code cleanup as a result of getting the above to work. -- Initial splash dialog has a system window list entry now so that if WarpIN hangs on startup, it can easily be killed from XCenter. -- Four-part version numbers (with fixlevels) are finally supported in the scripts too and not only displayed to the user. V0.9.19 (July 2, 2002) ----------------------- A 100% bugfix release for the highly broken 0.9.18 version. -- WRITEPROFILE on install and profile cleanup on deinstall broke with some earlier version. Fixed, this was due to some earlier changes in the config class hierarchy. -- The WPI archive header now uses an unsigned short variable instead of a short for the script size fields, which raises the maximum possible size for the installation script from 32K to 64K. Unfortunately I can't just make that variable a long to allow for bigger scripts without breaking binary compatibility. Please note that older WarpIN versions still cannot read scripts > 32K, so beware when creating archives. -- Fixed a very subtle bug in the new string class implementation from V0.9.18 which caused WarpIN to crash in certain situations, mostly on exit. This one was very hard to find. Thanks a lot to Knut Stange Osmundsen for helping out with an electric fence. ;-) -- Added resolution correlation to dialogs formatted by dialog formatter to make them display better on resolutions other than 1024x768. -- The REPLACE keyword never worked in CREATEOBJECT. Fixed. -- REQUIRED in EXTERNAL attribute of PCK tag was taken as part of the filename. Fixed. -- DosQueryCP call introduced with V0.9.18 always failed, which is why the "process codepage" detection did not work. Fixed. -- WarpIN V0.9.18 crashed if certain environment variables were not set due to bad VARPROMPT processing. This caused it to fail on startup if the user did not have the default paths set in the "Preferences" dialog. Fixed. -- Fixed target path processing, which was confusing codepaged and Unicode strings, causing macro resolution to fail on, for example, Martin Lafaix' widget libraries. The most embarassing symptom of this was that the code failed on the o umlaut in my own name with Martin Lafaix' widget libraries. -- Fixed another occasional crash introduced with V0.9.18 when turning to the container page in "Install" mode. -- First attempt at supporting DBCS codepages. Since I cannot test this on my system, I can't be sure whether this actually works. V0.9.18 (March 26, 2002) ----------------------- -- GUI rework. Install pages are finally resizeable, besides made them a bit prettier. Keyboard support should finally work too. "Configure" page uses checkbox containers now for future extensions. -- WarpIN internally processes all strings in Unicode now. This should finally allow people to create scripts in non-European languages. Even though nearly all string processing in WarpIN had to be reworked for this, including the script parsing, this change should be totally transparent to the user though. -- Splash dialog would never disappear in install mode. Fixed. -- Removed the stupid "list is not in SHADOW mode" debug message that appeared on deinstall. -- Prepared internal WarpIN package IDs to support four-part version numbers now. Scripts do not yet support this though. -- Database speedup. Checking the database for dependencies was terribly inefficient, which became a real problem when many packages were installed. Fixed, added lots of caching and reduced redundant processing in many places. -- Database packages are finally sorted by application names. -- Tons of fixes to executable stub. Added proper error handling to many places. -- Executable stub now returns more meaningful error messages than just "No sufficient WarpIN found". -- Executable stub now uses a separate thread for the unpacking of a temporary WarpIN, which fixes PM hangs in certain situations. -- Executable stub now uses WarpIN from executable if that is better than the installed version. Previous versions always used the installed WarpIN if it was at least 0.9.14, even if a newer WarpIn was in the executable archive. This should also fix the wrong version number in the database after WarpIN was updated. -- Removing parts from CONFIG.SYS PATH et al. statements on deinstall left duplicate ';' chars in the line. Fixed. -- The CONFIG.SYS loader would not detect CTRL-Z as the end-of-file marker, which resulted in new lines appended after that marker, being ignored by OS/2. Since the default CONFIG.SYS created by OS/2 install contains CTRL-Z, this caused problems on quite a number of systems. Fixed. Thanks to Achim Hasenmller for telling me about this problem. -- More internal rework for GUI abstractions as a preparation for future CID support. V0.9.16 (February 4, 2002) -------------------------- -- Added WARPIN OS= attribute, which was never implemented (blushing...). -- DEEXECUTE scripts were run even on install, which caused the problems with the XWorkplace install objects to be nuked on every install. Fixed. -- Fixed bad macro resolution with "DEVICE=?:\" config.sys strings. -- Fixed a number of problems with the standard executable stub, which did not handle paths with spaces, and other weirdos. -- Fixed crashes with VARPROMPT strings, which caused xfix*.wpi installation to fail. -- With VARPROMPT, WarpIN prompted several times for the same variable. Fixed; the value first entered is now stored. -- After pressing "Cancel" in the VARPROMPT dialog, system would hang. Fixed; DosWaitThread on a PM thread wasn't a good idea. -- Fixed crashes with PWICQ.WPI. V0.9.15 (September 19, 2001) ---------------------------- This is an interim release for the IBM Warp Community Workshop, September 17 to 21, 2001, Heidelberg, Germany. -- Fixed a number of rather stupid or plain wrong error messages in WarpIN, most importantly related to script errors (which appear to have broken a while ago). -- Added "script test mode" (-t option) to WIC.EXE. V0.9.14 (August 26, 2001) ------------------------- -- Added self-installing executable support. WarpIN itself comes as an EXE file now, and WIC.EXE has the -u and -U options for creating EXE archives now. Thanks Yuri Dario for making this work in the back-end. -- Added command-line options to warpin.exe to allow for forced recreation of WPS objects and such. See WPI_USER.INF. Also added a shadow to this history.txt file. -- Fixed a bug in REXX string parsing which caused PmAs installation to fail. -- Fixed WARPIN CODEPAGE= tag, which broke with some earlier release. -- Selecting something from "Selections" menu in install mode didn't update the drives info window. Fixed. -- main() crashed in some situations when C++ exceptions were thrown. Fixed. -- Added more data to archives display in "Archives" menu in install mode. -- WarpIn no longer uses the Standard Template Library (STL) at all. This significantly reduced the size of the WarpIN executables and sped up operation generally too. Besides, compilation now takes almost half the time. I wrote my own list<> template to replace the STL one, which uses helpers\linklist.c internally but provides C++ type safety through the list template. For this, a major overhaul of the internal WarpIN classes was in order. Most classes now derive from an abstract base class called BSRoot, which allows for limited RTTI and run-time object management. This will probably be extended in the future for better garbage collection. -- Optimized the code for size in various places, mostly for stub support to make stub.exe smaller. This required more changes to the back-end. -- Yuri Dario made some changes for VAC 3.6.5. -- Nuked out tons of printf calls in bzlib which were never visible anyway. V0.9.13 (July 6, 2001) ---------------------- -- WPIRTL.DLL now exports all mangled C++ functions by ordinal only. This should speed up WarpIN and WIC startup. -- Added still more error checking and slightly more meaningful error codes to the back-end. -- Yuri Dario added initial exe stub support to the backend (wic -u option). WARNING: Stub support required changes to the WPI file format. While WarpIN 0.9.0 to 0.9.12 used the WPI file format revision 3, if the stub option is used, WIC forces the WPI file format revision flag to be set to 4. This will cause earlier WarpIN versions to fail on the archive. This only applies if you use the wic -u option. In summary: -- WarpIN 0.9.13 can open all WPI files (WPI rev. 3 and 4). -- WarpIN 0.9.12 and earlier can only read WPI rev. 3, which is still used by WIC 0.9.13 if stubs are not used. -- If you use stubs, your users will need WarpIN 0.9.13 or higher to install the WPI. Stub support is otherwise still not documented. Documentation will follow in a later release. -- Knut Stange Osmundsen fixed some more things which were required for certain Odin features. V0.9.12 (June 6, 2001) ---------------------- -- Database view finally supports multiple selections so that several packages can be deleted at once. -- Added new, detailed dialog for dependency violation reports if user attempts to remove required packages. -- WarpIN now allows deinstallation even if dependencies are violated if user absolutely wants this. -- WarpIN can now warn the user if an archive's script has active REXX code to give paranoid users a chance to abort before their master boot record is overwritten or something. -- Reworked all message boxes in order to no longer use the ugly standard OS/2 message boxes, which was hard to read with longer messages at times. -- V0.9.9 broke GROUP tag support, leading to crashes because of an internal NULL pointer. Fixed; pwicq029d.wpi now installs fine here. This required some reorganization in the package classes and the various constructors. -- Container page still truncated paths to 32 characters sometimes. Fixed now, hopefully. -- "Drive info" window displayed garbage for drives after a gap in the available drive letters. Fixed. -- Fixed some thread synchronization problems with the log files introduced with V0.9.9. Together with the GROUP tag screwup, this caused lbmix007 install to crash. -- Script parsing is now running on a separate transient thread so PM isn't blocked while the script is initializing. Doesn't make much of a difference for those archives that behave, but lbmix007 can hog the system for minutes, so this was added. -- CONFIG.SYS changes were incorrectly recorded in the database if there was more than one change in a package. I guess this broke with V0.9.9; fixed. -- CONFIG.SYS was incorrectly updated if an existing line contained a substring of the search string (e.g. SET SHELLHANDLESINC was updated if SET SHELL was intended). Fixed. -- Yuri Dario reported crashes because of improper thread synchronization on SMP systems. Fixed; the strange GUI event semaphore was removed, now using WinSendMsg for synchronization, which should always work (confirmed by Yuri). -- Yuri Dario supplied a fix for script attributes not found with certain space combinations. V0.9.11 (April 26, 2001) ------------------------ -- WPIRTL.SYM was missing in the distribution, leading to incomplete trap logs. Added. -- Config.sys routines never found lines that had leading spaces, fixed. -- WIZILLA.EXE was broken. Fixed. -- If the "kill process" script command failed for some reason (due to the new error checking from V0.9.10), the user ended up with infinite questioning that the process should really be killed now. Fixed, now we're only giving a warning once. V0.9.10 (April 16, 2001) ------------------------ Added a couple of urgent fixes that were missing in V0.9.9. -- Finally figured out what caused the crashes on some systems when the KILLPROCESS attribute of the PCK tag was processed. If DosQProcStat failed for some reason, WarpIN would free an internal buffer twice, which would of course crash. Since DosQProcStat never failed on my system, I never got those errors. Fixed. -- readme.txt wasn't up to date. Updated. V0.9.9 (April 8, 2001) ---------------------- Yo, major upgrade, with many internal changes, extensions, and bugfixes. Hope this didn't break anything else. -- APPS.WIS was missing in the TEST directory, so the test script never worked. Fixed. -- Added envwic.cmd to set an environment for WIC.EXE to run from any directory. -- wic -x finally works with file masks. -- wic -a failed with files in root directories. Fixed. -- Added installation/deinstallation logs. The log file defaults to "install.log" in the WarpIN directory, but can be changed in the "Preferences" dialog. -- Added DEEXECUTE attribute to PCK tag for executables to be run during de-install. -- EXECUTE sometimes didn't work with parameters. Fixed. -- EXECUTE got confused with CREATEOBJECT and REGISTERCLASS flags. This wasn't serious, WarpIN only gave a wrong message after install. Fixed. -- The stupid parser failed on numeric NAME="VALUE" pairs if the numer was in quotes. Fixed. -- Specifying the direct root of the boot drive as the target path ("?:\") didn't work. Fixed. -- Added simplistic archive viewer in install mode (new "Archive" menu -> "View"). -- Patrick Haller fixed a number of bugs in the WPI backend which apparently never did error checking anywhere. This might fix hangs people experienced when WarpIN attempted to open broken archives. -- Reorganized all internal script code to prepare WarpIN XML scripts. -- Database display got confused if several packages had the same application name, but different authors. Fixed. -- Deinstall and verify didn't work if the target path was the root directory of a drive. Fixed. -- Deinstall now checks for whether each file has been overwritten with a newer file and prompts the user if the file should still be deleted. -- WarpIN upgrade install failed for subfiles in "test" if that dir didn't exist yet. Fixed. -- Various optimizations all over the place. V0.9.8 ------ V0.9.7 was never officially released. But since some people got hold of anyway, that version number was skipped to avoid confusion. -- Added installation process for upgrades. Just click on the new WARPIN.EXE, and it will update your existing install. -- Fixed several problems with CONFIG.SYS changes that showed up with Odin. -- Fixed the target paths bug that showed up with XWorkplace V0.9.6. This forced many people to completely deinstall XWorkplace before a new version could be installed... this should work better now, even though it's still not perfect... this needs a redesign. -- Dependency checks did not check versions numbers if a package was already installed. Fixed. -- Further optimized internal string routines. -- For developers: Big updates to xdoc... can do C++ methods properly now. WarpIN documentation is finally readable to a certain extent. V0.9.6 ------ -- Added command-line extraction (both for files and scripts) to WIC.EXE. -- WIC.EXE crashed packing 0-byte files. Hopefully fixed. -- Added UNIX-style path handling (forward slashes) to PCK tag macro resolution. See WPI_PROG.INF for details. -- Disabled the ugly white OS/2 error message boxes for DOS errors in WARPIN.EXE. -- Dependency checks lacked version checks if a package was already installed. Fixed. -- Added exception handling to "kill process" processing because apparently this crashed on some systems. -- CONFIG.SYS was sometimes written even if no changes were made. Also, CONFIG.SYS backup filename was sometimes reported wrong. Fixed. -- Reworked internal string routines. This should make WarpIN faster in general, especially with script parsing. -- CID environment should be working now. I have tested WARPIN_DISPLAYPAGES=NO with Odin, and it worked. -- For developers: xdoc was broken with V0.9.5, should be working again. Some minor improvements were made as well. V0.9.5 ------ -- WIC.EXE broke with V0.9.4. Fixed. -- I have spent quite some time on code optimizing. All WarpIN executables now use a shared library (WPIRTL.DLL). This greatly reduces the size of the executables. However, this implies that the executables need to find this DLL. This is no problem with WARPIN.EXE (because the program object has its startup directory set correctly), but if you use WIC.EXE from the command line, you might need to use BEGINLIBPATH or add the WarpIN directory to your LIBPATH. -- WarpIN forgot to report network drives in "Drives Info". Should be fixed now. -- Removing INI (profile) entries works now. -- Fixed UNIQUE(xxx) and REMOVELINE with PCK CONFIGSYS, which deleted wrong lines in CONFIG.SYS. -- EXECUTE wasn't processed if all flags on "Configure" page were disabled. Fixed. -- Added more help panels. -- Added more context menus to database view. -- Fixed code to compile with EMX again. V0.9.4 ------ -- Raised stack size for WIC.EXE which crashed with deep directory recursion. -- WIC now skips 0-byte files. -- WarpIN now runs even if the WPS is not up. -- Added help. -- Changed WARPIN VERSION= to three-part versioning. -- Added WARPIN_DEFAULTAPPSPATH and WARPIN_DEFAULTTOOLSPATH script environment variables. See WPI_PROG.INF. -- VARPROMPT didn't display text right. Fixed. -- Fixed EXECUTE bugs (thanks Yuri Dario). -- EXECUTE can now have several modifiers. -- Added dependency checks to deinstall from database. -- On deinstall, configuration items which are to be undone can be selected individually now. -- KILLPROCESS didn't work on de-install. Fixed. -- Fixed right split view in database, which was initially empty. -- Deinstall can unlock files now. -- Deinstall can remove empty directories now. If directories are not empty, a more meaningful message is displayed. -- WarpIN can now prompt for restart WPS after WPS classes were changed. -- Drive info window stopped after first invalid drive. Fixed. -- Fixed exception handlers, which broke with V0.9.3 again. -- Great speedup with HTML viewer. V0.9.3 ------ -- Completely removed Add/Remove mode. We now always enter "Full install" mode. -- Removed DosQuerySysState calls which apparently caused crashes on some systems. Using 16-bit DosQProcStat instead. -- Added REXX support documentation to WPI_PROG.INF. -- Added FORMAT=HTML and FORMAT=PLAIN to . Limited HTML support introduced. -- XTextView control had serious problems with scroll bars. Fixed. Also added lots more features. -- Added more package dependency checks. -- Macros in target paths never worked, especially "?:\" for the boot drive. Fixed. Added package references to macro resolution. -- didn't work with REPLACE. Fixed. -- didn't work right. Fixed. -- Added . -- Fixed a few memory leaks in BSString class. -- Added more error checking in various places. -- VARPROMPT window crashed if nothing was entered. Fixed. -- Tabs in scrips caused errors. Fixed. -- Added readme shadow to WarpIN install objects. -- Checkboxes weren't always set right on Configure page. Fixed. -- Exception handlers caused exceptions themselves sometimes with certain strange stack frames. Fixed. -- SYM file parsing only worked on Warp 4. Fixed, I hope. -- Switched helpers to create helpers.lib now for easier linking. V0.9.2 ------ Mostly bugfixes, plus REXX support, plus new tags. -- REXX support (C) Cornelis Bockemhl. No documentation yet, as this is fully experimental and subject to major change. ;-) -- Made NEXTBUTTON optional. -- VARPROMPT implemented. -- External packages implemented. -- Added more error checking to backend to solve hung WarpIN with broken packages. -- Script codepage support added. -- Macro resolution in TARGETPATH finally works with environment variables too. -- Free space on drive wasn't displayed right if > 4GB. Fixed. -- Finally displaying package descriptions as tooltips. -- Renamed database file to "datbas_X.ini" with X being the boot drive so that WarpIN can be used from several OS/2 boot partitions independently. The old database is automatically converted. -- Database allowed several packages to be selected at once, which confused the rest of the GUI. Fixed; now only one package can be selected. -- Added database "configuration" view. -- Sped up database display. -- Added tab key support to database windows. -- Added more configuration descriptions to database; now using virtual methods, which works much better. -- "Undo config" wasn't checked right when deinstalling multiple packages at once. Fixed. -- "Exit" menu item didn't work. Fixed. -- Fixed memory leaks. -- Fixed exception handlers which weren't unwinding call stacks right. -- Exception handlers now also parse SYM files in ?:\OS2\PDPSI\PMDF on Warp 4. -- Changed linking to non-optimizing in order to have exception handlers parse SYM files right. V0.9.1 ------ This is both a "lotsa-new-features" and a bugfix release. -- WicPM added. -- Package dependencies are now implemented. Dependencies are stored in the database according to the REQUIRES attributes of the PCK tag and the database performs checks before deinstalling. Also, before installing, we check whether dependencies are met. This has been tested to a certain extent, but not extremely extensive. I'd be grateful for more feedback. -- CONFIGSYS attribute UNIQUE flag support improved. -- EXECUTE attribute is now supported. -- CLEARPROFILE and WRITEPROFILE attributes now supported (although deinstallation doesn't work yet). -- Six-part package IDs (with three-part version numbers) are working now. -- Installation of WarpIN itself now creates objects for the documentation too. -- Various GUI enhancements and bugfixes. Added new XTextView control for viewing text. -- WarpIN can now repair the database itself to a certain extent, should it become corrupt. -- CONFIG.SYS was always rewritten to disk, even if nothing was changed. That lead to a lot of backup files in the boot drive. Fixed. -- Script parsing errors always had wrong line numbers. Reworked that, I hope it's better now. -- REPLACECLASS wasn't stored in the database. Fixed that. -- Fixed some memory leaks and other heap problems. -- WIC.EXE has new "-c" and "-r" parameters for changing to subdirectories and recursively adding files. -- Source code reorganized again. Split up the frontend C++ classes across many more headers to reduce the need for recompiles and speed up compilation also. -- Introduced more base classes for the various frontend classes so we can make STL list's of the base class, which reduces code bloat amazingly. I reduced WARPIN.EXE's size by about 100 KB doing this. V0.9.0 ------ -- Source code reorganized. -- Reworked the entire frontend to use C++ classes now; implemented a proper "add/remove" mode if packages from an archive have already been installed. -- Packages support six-part IDs now too (three-part version numbers). -- Rewrote "add/remove" mode completely. -- Lots of other user interface enhancements. -- Entry field on cnr page was limited to some 30 characters. Fixed. -- Changed back-end to use libbz2 instead of zlib. This leads to an incompatible archive format, but compresses faster and better. -- DLL/EXE files can now be unlocked if in use. -- GROUP tags are working again. -- WARPIN and TITLE tags are working. -- Added EXPANDED attribute to GROUP tag. -- Rewrote the database viewer completely. Now using a split view. -- Database was missing install date and time. Added that. -- PMWIC added to source code. -- Added directory recursion to WIC.EXE. Alpha #4 -------- -- There are now two INFs: one for the user, one for the programmer. -- The global database is working!! This was a %&$õ of work... This means that de-installing packages should be working now. -- Creating WPS objects, CONFIG.SYS manipulation, WPS class management, and macro resultion implemented! Check the PCK tag reference in WPI_PROG.INF for details. -- Better "File exists" dialog. -- Multiple packages are now supported. -- Added environment variable support for CID installation. -- WIC.EXE can now update packages and set install scripts independently (as far as I've tested this). Phh... -- Most strings that WarpIN displays have now been exported to the resources and MSG file to support NLS. This will probably still change however, so don't attempt any translating at this point. There's still no NLS for the install script error messages, and I don't know yet whether there'll ever be. Alpha #3 -------- -- Compression/decompression. We're now using the zlib library which works just beautifully. -- Lots of error checking. Files are checked for existence before they are overwritten, most other error conditions should be handled well also. If all goes wrong, there is a sophisticated exception handler too. -- The front-end sources have been cleaned up big time. There is now a clean separation between the string logic (for the install script) and the PM display stuff. There is no more string parsing in the PM part (gui.* files), so this can more easily be replaced. -- There is readable documentation in INF format now. PLEASE READ IT before asking any questions. Previous versions ----------------- Lost track of them, sorry.