WISH LIST:

- Be smarter about separate packages that may be combined - don't complain if
  "normal" install is redefined in subsequent package files.

- make the install progress bar more useable from the packageParser, instead of
  having only untar use it correctly.

- a new "about" page graphic with some credit for me and an ad for
  www.tcltk.com instead of www.tclconsortium.org

- make it configurable whether to use gzip or uncompress on UNIX.

- allow the user to supply a decompression program on windows, rather than
  forcing everything to be self-extracting (so you don't have to keep around
  multiple copies of the exe part). It looks like the latest freewrap
  incorporates a compression program already, so maybe that can be reused.



CHANGES:

Release 1.5

2002-03-26
- save wd before doing cd during an untar in windows, then change back after
  we've done our thing.
- force a minimum size for the main window

2002-03-26

- Add "-option" feature for forms, which creates an optionlist
- add "platformnamecmd" subcommand of package, allowing the user to specify
  their own function for deciding what the architecture is on a per-package
  basis.
- make tclish's platform function available in the packageParser
- expose freewrap's registry, shortcut, and getSpecialDir commands in the
  packageParser on windows.
- add -username and -password command line options for when installing from a
  password-protected web site
- add an optional parameter to untar that allow the user to specify a number of
  steps to be added to the amount it takes to complete (so it doesn't show 100%
  done immediately after the tar.)
- make untar return the number of the current step, so the user may call
  "progress" and continue incrementing the number of steps completed.
- fix patch so it works from the packageParser

Release 1.4

2001-08-24

- Make "form" the default type for parameters. If something other than "form" is
  given as the type, run that as a verifier command after the user fills in the
  form.

- Fix a bug where "install these packages as well" didn't do anything.

- use bg_download, so download resume is supported.

- use the version of gauge from the installer project.

- make windows temp directory default to a more reasonable value than /tmp

Release 1.3

Bugfixes for Windows

Release 1.2

2001-06-13

- add a configuration item to custom.cfg that allows the user to give command
  line flags for their self-extracting exe's.


2001-06-12

- began adding support for windows. At this point, it requires self-extracting
  executables rather than tarfiles.

- added '&' special character in filenames, which is substituted with tar.Z on
  UNIX or exe on windows.

Release 1.1

2001-03-05

- separated the default URL out from install.tcl by adding "install.url" file.
- added pre-wrapped binaries and generated a tclish install package.

2001-03-02 (Texas Independence Day)

- edited "icon" subcommand in package description so that you can create an
  image from a file rather than always having image data inline.

2001-02-28

- Altered the way the custom.cfg file works, so rather than sourced directly
  it's now eval'ed in a safe interp. This is more consistent with the package
  description files.

2001-01-08

- Added the ability to "freewrap" the entire install into one file. The
  installer is smart enough to get files out of freewrap instead of looking for
  them on the filesystem. Untar pipes tarfiles into uncompress using fcopy so
  that even tarfiles needn't be extracted from the single executable, they just
  get uncompressed from where they are.

2001-01-24

- added -web and -url options, allowing for a web based install. This feature
  isn't very robust yet, but it works pretty well.

2001-01-23

- Fixed the error message from reading the .pkg files so that the main screen
  won't pop up in front - this allows "pre-checks" which are just code in the
  .pkg file, after the package is defined.
 
- ability to add options to the types of install (full, NORMAL, LICENSE ONLY,
  custom) using "installoption" to define it, and "installoption_add" to add a
  package to the list that are installed by that choice. "custom" is added as a
  choice by default. If "full" is defined, all packages are automatically added
  to that one.

  Example:
    installoption normal "Normal Install.\nThe packages most users would use."
    installoption full "Full Install.\nThe whole shebang."
    package {Tcl 8.3} {
      category {Tcl Blast}
      # ...
    }
    installoption_add normal {Tcl Blast} {Tcl 8.3}

2001-01-18

- Packages may specify "parameters" in the form of a list with five repeating
  items:
  type Title Description paramname default ?type Title Description paramname
  default? ...

  Type is one of:
  - directory (as in target directory)
  - sourcedir (read-only directory)
  - form (list of up to 10 parameters to be queried in a form. In this case,
    the paramname is interpreted as a list of paramnames. A form paramname may
    be specified as "-file <paramname>" in which case that blank gets a
    "browse..." button on the form.
  
  The default value can optionally be a proc defined in the package files. If a
  proc name is found matching the default value, the proc is executed (by the
  package parser) and its return value used for the default (or default list for
  a form.) This return value may be "-force <default>" in which case no page is
  displayed, the defaults are taken without asking. (For example once licensing
  has been installed once, we just take stuff from the config file, no need to
  ask the user for each product.)

  Parameters having the same name in multiple packages only get asked once, so
  the install directory in the original tclish would just be a parameter that
  all packages have in this version.

- tarfile has been replaced with "installcmd". This gives a proc defined in the
  package parser interp that will do the install. All parameters (for all
  packages) are defined in the global array "parameter" when the proc is called.

- added command "untar" to the packageParser for installcmds to use, to do the
  original behavior for tarfile.

- the patch stuff has been moved to a separate proc called install_patch_files,
  which is actually unused in this version since we don't actually need it. The
  intent is for this command to be available to the installcmds just like untar.
  It has parameters so that each package can target specific files rather than
  doing all files, which should improve performance.

- The package parser is now a full-fledged (but still separate) interpreter, so
  that the installcmds can write files and such.

- the way the pages of the notebook are traversed has been altered so that pages
  can be reused. This includes making install_display_<page> procs instead of
  displaying the page as a side effect of the previous page's "next" proc.

- the tcl script has been wrapped up with a shell script that sets TCLLIBDIR and
  such so that tcl can be run from a subdirectory that's part of the install,
  rather than using prowrap. (makes for easier testing.)

- altered the dirselect "widget" so that it puts a "+" on all directories rather
  than checking to see if the have subdirectories underneath. Checking all 1000+
  NFS automounted subdirectories under /home on our system was making
  performance unbearable.

- Fixed dirselect_set so that a directory parameter may be given a default
  value.

- Made the tarfiles compressed

- Use a tar-created manifest file on disk rather than going through the
  uncompress to get the manifest, for performance reasons.

