releasing/cbrtools/perl/relnotes.txt
author marvin shi <marvin.shi@nokia.com>
Tue, 30 Nov 2010 17:14:57 +0800
changeset 714 e5a58c351011
parent 602 3145852acc89
permissions -rw-r--r--
feature bsym format symbol rombuild support

Version 2.84.3

Made by Build Tools China, 08/09/2009

Defect fixes:
        DPDEF141526 - raptor errors when validating tools_redistribution_common in MakeCBR
New Features:
*   REQ12751 - CBR Tools use Raptor.
        
-----------------------------------------------------------------------------------

Version 2.84.2

Made by Build Tools China, 02/09/2009

Defect fixes:
        DPDEF141709 - DeltaEnv create delta_manifest_baseline.xml format error
        
-----------------------------------------------------------------------------------

Version 2.84.1

Made by Build Tools China, 20/07/2009

Defect fixes:
        DPDEF140962 - Miss manifest.xml when apply delta between 141 & 142 tb91sf 
        DPDEF141079 - deltaenv keep the file which has been moved to another one in old zip file 
        
-----------------------------------------------------------------------------------

Version 2.84.0

Made by Release & Integration Tools China, 30/06/2009

New Features:
*   REQ9701  - Faster, Optimised Packaging process.
*   REQ11393 - SBSv2 support in CBR tools.

Compatibility notes:
*   There is a new reldata format introduced in this REQ. 
    Then if an enviornment is got by any prior CBR version, there will be reldata mismatch 
    when using any CBR tool in this version. So please keep the CBR tools version consistent.
    
-----------------------------------------------------------------------------------

Version 2.83.1031

Made by Release & Integration Tools China, 17/06/2009

Defect fixes:
        DPDEF140280 - CBR Tools 2.83.1030 fail to compile
        
-----------------------------------------------------------------------------------

Version 2.83.1030

Made by Release & Integration Tools China, 18/05/2009

Defect fixes:
        DEF139216 - DeltaEnv: keep going with error during create and apply delta
        
-----------------------------------------------------------------------------------

Version 2.83.1029

Made by Release & Integration Tools China, 01/04/2009

Defect fixes:
        DPDEF137305 - CBR will report "Error: didn't find any platforms"
        
-----------------------------------------------------------------------------------

Version 2.83.1028

Made by Release & Integration Tools China, 26/03/2009

Defect fixes:
        DEF130995 - Deltaenv errors in creating delta package for 9.5 - M04693

-----------------------------------------------------------------------------------

Version 2.83.1027

Made by Release & Integration Tools China, 16/03/2009

Defect fixes:
        DPDEF136548 - CBR tools don't work with raptor-generated abldcache file

-----------------------------------------------------------------------------------

Version 2.83.1026

Made by Release & Integration Tools China, 04/03/2009

Defect fixes:
        DPDEF135800 - The CBR Tools do not classify IPR for source statements using relative paths
        DPDEF135797 - CBR Tools do not support relative paths in MRP files

-----------------------------------------------------------------------------------

Version 2.83.1025

Made by Release & Integration Tools UK, 19/02/2009

Defect fixes:
        DPDEF135168: - CBR Tools do not automatically include DP files 
    
-----------------------------------------------------------------------------------

Version 2.83.1024

Made by Release & Integration Tools China, 22/01/2009

Defect fixes:
        DPDEF128617 - MakeEnv does not work with SRCROOT set to anything other than \
    
-----------------------------------------------------------------------------------

Version 2.83.1023

Made by Release & Integration Tools China, 12/01/2009

Defect fixes:
        DPDEF128818 - Envinfo fails testing a mrp with a source statement pointing to a directory
        DPDEF132654 - Project Loki - 23 - Archive-Tar 
    
-----------------------------------------------------------------------------------
        
Version 2.83.1022

Made by Release & Integration Tools China, 08/01/2009

Defect fixes:
        DEF130274   - Intermittent failures in CBR import of releases to Beijing site
        DPDEF132728 - Project Loki - 175 - net-ftp-common

-----------------------------------------------------------------------------------

Version 2.83.1021

Made by Release & Integration Tools China, 23/12/2008

Defect fixes:        
        DPDEF132236 - unzip version is too old in the CBR packages
        PDEF131197  - Deltaenv re-construction fails - transferring vFuture M04717 -> M04719	

-----------------------------------------------------------------------------------
Version 2.83.1020

Made by Release & Integration Tools China, 17/12/2008

Defect fixes:
        DEF131119   - deltaEnv can't create delta data of gt_techview_baseline component 
        DEF131116   - Permission deny issue when doing zip and delete command by using deltaenv
        DPDEF130547 - CBR tools should report error to the log when import file failed
	
-----------------------------------------------------------------------------------

Version 2.83.1019

Made by Release & Integration Tools China, 05/11/2008

Defect fixes:
	DPDEF129430 - Improve the warning message for envinfo with -c,-d or -p
	DPDEF129931 - DeltaEnv apply need to handle one error senario 
	
-----------------------------------------------------------------------------------

Version 2.83.1018

Made by Release & Integration Tools UK, 23/10/2008

Defect fixes:
	DPDEF128531 - problems creating delta package using manifest file in 9.1
	DPINC128056 - Missing argument handling in CleanEnv.pm
	DPDEF126632 - Deprecate support for Component-Based Archives in the CBR Tools
	
Compatability notes:
*	Component-based archives (using the 'archive_path_file' keyword) are now deprecated, and produce a warning - however, no functionality has been disabled.  It's recommended that users migrate to using project-based archives with the 'archive_path' keyword.

-----------------------------------------------------------------------------------

Version 2.83.1017

Made by Integration & Variant Tools, 03/10/2008

Defect fixes:
	DPDEF125527 - CBR tools source mappings break binary platform statements
	DPINC128057 - Issue with reltools and [...] deep recursion
	DPDEF127628 - Deltaenv produces errors on pathnames > 255

-----------------------------------------------------------------------------------

Version 2.83.1016

Made by Integration & Variant Tools, 12/09/2008

Defect fixes:
	DPDEF126625 - Problem with ViewNotes [viewnotes doesn't always return immediately with some browsers]
	DPDEF124626 - deltaenv -c -ra doesn't work

-----------------------------------------------------------------------------------

Version 2.83.1015

Made by Product Creation Tools, 17/07/2008

Defect fixes:
	DEF114845 - Latestver doesn't spot if the archive path doesn't exist 
	DEF122011 - GT0410 CBR tools: open archive file when cleaning, cleanlocalarch warns 

-----------------------------------------------------------------------------------

Version 2.83.1014

Made by Product Creation Tools, 11/07/2008

Defect fixes:
	DEF124892 - wrong command name in the synopsis of RemoveSource.html
	DEF124119 - Use of uninitialized value in split at c:/apps/SITK/cbr/Utils.pm line 1467.
	INC123162 - viewnotes behaves differently between old CBR and SITK's
	DEF122117 - GT0410 CBR tools: perl crash for invalid paths: deltaenv -r and deltaenv -c --dp
	DEF122116 - GT0410 CBR tools: perl crash if source file held open while running removesource

Compatability notes:
*   When writing release notes for use with these tools, this version of the
    tools permits HTML tags to be used.  To tell the tools not to treat your
    comment as plain text, wrap the comment in <html> </html> tags

-----------------------------------------------------------------------------------

Version 2.83.1013

Made by Product Creation Tools, 20/05/2008

Defect fixes:
	DEF114845 - Latestver doesn't spot if the archive path doesn't exist
	DEF118532 - Warnings from cleanremote if remote archive paths not specified
	DEF121046 - CBR tool Cleanlocalarch fails using Perl 5.8.8
	DEF121945 - GT0410 CBR tools: file held open while removing component
                    crashes envdb line1639
	DEF121958 - GT0410 CBR tools: no archive path crashes latestver, exportenv
                    and exportrel
	DEF121964 - GT0410 CBR tools: wrong number of args for archive path crashes
                    pathdata
	DEF121972 - GT0410 CBR tools: perl warnings 'exiting subroutines via next
                    at cleaner.pm'
	DEF122005 - GT0410 CBR tools: keep_recent_env and rel give warnings on non
                    numeric arguments
	DEF122012 - GT0410 CBR tools: incorrect configuration gives perl warnings
	DEF122018 - GT0410 CBR tools: invalid source dir specified to getrel -I,
                    getsource -i crash
	DEF122110 - GT0410 CBR tools: invalid archive path in remote reltools.ini
                    (pullenv, pullrel)
	DEF122114 - GT0410 CBR tools: pullrel -h gives the wrong help
	DEF122115 - GT0410 CBR tools: perl crash when removing source for a non
                    installed component
	DEF122119 - GT0410 CBR tools: use of uninitialised value when calling
                    deltaenv -r (no args)
	DEF122122 - GT0410 CBR tools: perl crash if bad values given to --maxdelta
	DEF122142 - ImportEnv command line help is missing an option

-----------------------------------------------------------------------------------

Version 2.83.1012

Made by Product Creation Tools, 09/04/2008

Defect fixes:
	PDEF120528 DeltaEnv -a : error in constructing base_documentation component
	DEF119931 DeltaEnv -c tool unable to read a generated release manifest file

-----------------------------------------------------------------------------------

Version 2.83.1011

Made by Product Creation Tools, 26/03/2008

Defect fixes:
	DEF115306 Errors when running EnvInfo

-----------------------------------------------------------------------------------

Version 2.83.1010

Made by Product Creation Tools, 22/02/2008

Defect fixes:
	PDEF111988 Adding archives to reltools.ini slows down getenv
	DEF118518 "experimentalproxy" remote site type doesn't work
	DEF118517 CleanRemote doesn't work: undefined values

-----------------------------------------------------------------------------------

Version 2.83.1009

Made by Product Creation Tools, 26/11/2007

Defect fixes:
        DEF114351 DeltaEnv is very slow processing developer library components
        DEF113317 zdc.exe crashes in deltaenv
        DEF110665 CBR Tools GPG documentation is out of date
        DEF113042 CBR tools return a '0' value even with invalid arguments
        DEF114436 GT0366: DeltaEnv: ApplyDelta.pm has incorrect English messages

-----------------------------------------------------------------------------------

Version 2.83.1008

Made by Product Creation Tools, 15/11/2007

Defect fixes:

    INC113318 - RELTOOLS: deltaenv can not co-op with multiple local archive
    INC105515 - RELTOOLS: viewnotes and angled-brackets
    DEF113091 - Inconsistent behaviour of CBR tools
    DEF114173 - DeltaEnv Fails with Perl Error

-----------------------------------------------------------------------------------

Version 2.83.1007

Made by Product Creation Tools, 30/10/2007

Defect fixes:

    DEF112925 - DeltaEnv does not remove deleted exports
    DEF113007 - DeltaEnv can create invalid delta manifests
    DEF112186 - DeltaEnv fails to apply delta due to long path lengths
    DEF113394 - Releasing an already existing version of a CBR comp deletes the 
                original from the archive
    INC113252 - RELTOOLS: blddoc exit with an error

-----------------------------------------------------------------------------------

Version 2.83.1006

Made by Product Creation Tools, 22/10/2007

Defect fixes:

    PDEF113136 - CBR: Bad reference when remote path missing from reltools.ini  
    PDEF107504 - ImportEnv and ImportRel do not provide a summary
    DEF113056 - DeltaEnv produces Perl warnings
    DEF112883 - PullEnv/PushEnv have ceased to work
    DEF112532 - DeltaEnv cannot create a delta     
    DEF112367 - CBR errors and warnings in M04358 v9.6

Compatibility notes:
*   The output of ImportRel/ExportRel/ImportEnv and ExportEnv has been changed.
    All the tools now produce a table of successful transfers, and then a table
    of failed transfers (if any).  The table also includes a column to display
    the status or failure reason.
    
-----------------------------------------------------------------------------------

Version 2.83.1005

Made by Product Creation Tools, 09/10/2007

Defect fixes:

    DEF112571 - CBR creation more fragile in recent System Builds

-----------------------------------------------------------------------------------

Version 2.83.1004

Made by Product Creation Tools, 27/09/2007

Defect fixes:

    INC111277 - RELTOOLS: slow exporting / exportdata parsing

-----------------------------------------------------------------------------------

Version 2.83.1003

Made by Product Creation Tools, 26/09/2007

Defect fixes:

    DEF112113 - DeltaEnv fails to overwrite even if the overwrite flag is set
    DEF112116 - DeltaEnv won't apply a delta

-----------------------------------------------------------------------------------

Version 2.83.1002

Made by Product Creation Tools, 20/09/2007

Defect fixes:

    DEF111270 - Mysterious warning in latestver
    DEF105111 - Symbian::DistributionPolicy perldoc incorrect since CL653690
    DEF110092 - CBR tools do not indicate whether or not abld cache is being used
    DEF108677 - BldDocs does not build the docs for DeltaEnv 
    DEF109761 - DeltaEnv obliges the user to provide a PGP key 
    DEF111453 - DeltaEnv causes problems for archive cleaning tool
    DEF111817 - DeltaEnv fails to handle changes to export rules 

-----------------------------------------------------------------------------------

Version 2.83.1001

Made by Product Creation Tools, 31/08/2007

Defect fixes:

    DEF108536 - autoCBR releases components unnecessarily 

Compatibility notes:
*   Archived components which contain abld.bat in the manifest.xml or the zip
    files may be reported as dirty.  Components created with this release of the
    CBR Tools will not contain abld.bat files.

-----------------------------------------------------------------------------------

Version 2.83.1000

Made by Product Creation Tools, 30/08/2007

New Features:
*   PREQ775 - Alignment of CBR and System Model components

Compatibility notes:
*   There is a new keyword supported for specifying IPR information in MRP files.
    Information on the syntax and usage of the 'ipr' keyword can be found in the
    CBR Tools CHM help file->CBR Tools User Guide->Creating a typical MRP file->
    Adding IPR information.

    IPR information will be obtained from MRP files by default, unless the MRP files
    do not contain IPR information in which case it will fall back to
    using distribution.policy files.
    
    You can specify that distribution.policy files are to be used by default by
    adding the 'use_distribution_policy_files_first' directive to your reltools.ini.
    
    If you are using distribution.policy files as default and the required
    distribution.policy file is missing then the CBR Tools will attempt to get the
    information from MRP files.    
    
-----------------------------------------------------------------------------------

Version 2.82.1004

Made by Product Creation Tools, 17/08/2007

Defect fixes:

    INC105524 - Cleanremote command does not work...
    DEF110377 - GetSource does not print warning with missing archives

-----------------------------------------------------------------------------------

Version 2.82.1003

Made by Product Creation Tools, 10/07/2007

Defect fixes:

    DEF103662 - Add support to envsize command to only count 'new' components
    DEF107988 - Source mapping breaks manifest
    DEF108734 - DeltaEnv fails to run from SITK

-----------------------------------------------------------------------------------

Version 2.82.1002

Made by Product Creation Tools, 06/07/2007

Defect fixes:

    INC108949 - RELTOOLS: Cannot run GetEnv because another command is already running
    DEF100309 - CBR Tools do not work with GNU Diff 

-----------------------------------------------------------------------------------

Version 2.82.1001

Made by Product Creation Tools, 29/06/2007

Defect fixes:

    DEF102405 - reltools don't seem to cope with importing releases with sourceX
                but no key
    DEF105028 - Cleanlocalarch did not keep a recent component when it was specified to
    DEF107829 - Autoflush turned on for reltool scripts
    DEF107832 - Import.pm should have setting so that "Incorrect PGP passphrase"
                doesn't hang YG

Compatibility notes:
*   Previously Cleanlocalarch would remove components which were corrupt or which
    were being released into the archive at the same time Cleanlocalarch was
    running.  Now Cleanlocalarch will not remove these components by default.
    If you wish for Cleanlocalarch to remove such components you will need to
    specify the -r (really clean) flag when running Cleanlocalarch.

-----------------------------------------------------------------------------------

Version 2.82.1000

Made by Product Creation Tools, 26/06/2007

New Features:
*   GT0366/PREQ1703 Traceability PREQ for changes to legacy functionality which
    have been delivered as part of Nutmeg
    REQ7325 CBR intelligent bitwise-delta releases

Compatibility notes:
*   This change provides the new DeltaEnv command - there is no change to the
    existing release/import/export commands or their functionality

-----------------------------------------------------------------------------------

Version 2.81.1018

Made by Product Creation Tools, 19/06/2007

Defect Fixes:

    DEF107823 - CBR Tools compatibility fix for export sources owned by another component

Compatiblity notes:
*   If you specify the wrong number of arguments for the 'export_file' keyword in
    an MRP file then an error will be produced.  The new error is 'Error: Invalid
    number of arguments to 'export_file' keyword in "MRP name"'.

-----------------------------------------------------------------------------------


Version 2.81.1017

Made by Engineering Tools, 08/06/2007

Defect Fixes:

    DEF107823 - CBR Tools compatibility fix for export sources owned by another component

-----------------------------------------------------------------------------------

Version 2.81.1016

Made by Engineering Tools, 30/05/2007

Defect Fixes:

    INC104253 - ExportRel exits silently if release exists on FTP site

Compatiblity notes:
*   Additional messages in the ExportRel command:
    - a note of anything that didn't need exporting because it already exists
    - a report at the end of all successful exports
    - a messsage at the end if the overall effect of the tool was to do nothing

-----------------------------------------------------------------------------------

Version 2.81.1015

Made by Engineering Tools, 25/05/2007

Defect Fixes:

    INC105513 - Using validaterel results in releases with corrupt manifest files
    INC105514 - Cannot find mrp file when using validaterel
    INC105518 - Out-commented line in mrp file picked up anyway...
    INC105677 - CBR Tools behave badly with special characters in passwords
    INC105539 - Viewnotes produce not so good html...
    INC105535 - Greek and Russian characters are not supported by reltools
    INC105548 - Reltools allowing to build on drives lower than F:

-----------------------------------------------------------------------------------

Version 2.81.1014

Made by Engineering Tools, 30/04/2007

Defect Fixes:

    DEF101018 - CBR getenv gets stopped
    DEF101032 - Unnecessary confirmation dialog in installer during upgrade
    DEF104279 - The exclude keyword in the CBR export table breaks the exported archive
    DEF104280 - CBR Documentation of export tables is incomplete

Minor Changes:
    Amended the error messages produces when UnZip fails to include the return code

-----------------------------------------------------------------------------------

Version 2.81.1013
                             
Made by Engineering Tools, 01/03/2007

Defect Fixes:
    DEF099673 - OS limits on path length are not enforced by CBR tools
    DEF102329 - Importenv runs slowly

Compatibility Notes:
*   Amended CleanEnv so that warning messages are produced instead of error
    messages in relation to files and the OS path length.

-----------------------------------------------------------------------------------
    
Version 2.81.1012
                             
Made by Engineering Tools, 20/02/2007

Defect Fixes:
    INC101483 - dumpbin /symbols /exports failed

Compatibility Notes:
*   The tools will now continue on from errors originating from an evalid
    dependency (e.g. dumpbin, and also others such as elfdump).  The errors are
    suppressed if they originate from dumpbin, and appear as warnings if
    originating from other tools.
*   When validating the message 'No checksum found for files(s)...' will appear
    in all these cases, or when validating against a release which experienced
    one of the above evalid dependency failures when it was made.

-----------------------------------------------------------------------------------

Version 2.81.1011
                             
Made by Engineering Tools, 22/01/2007

Defect Fixes:
    DEF098727 - Add support for forcing an import of an environment
    DEF092967 - [CBR Tools] Re-enable newly disabled functionality in fix for DEF092883
    DEF099673 - OS limits on path length are not enforced by CBR tools
    DEF100138 - LatestVer filtering is case sensitive
    DEF097215 - CBR/Evalid generates incorrect manifest checksum when dumpbin not present

Compatibility Notes:
*   Path lengths are now enforced by the CBR tools.  It is now not possible to
    release a file with a path of containing more than 245 characters.
*   A new informational message has been added.  When validating against a
    component which was built on a machine with no 'dumpbin' program, and which
    contains files that require dumpbin in order to be validated, the code will
    now revert to the validation process which predated version 2.81 of the
    tools.
    The new message is 'No checksum found for files(s) <files> - reverting to
    old evalid process.'

-----------------------------------------------------------------------------------

Version 2.81.1010
Made by Engineering Tools, 03/01/2007

Defect Fixes:
    DEF091267 - CBR tools 2.80 produce warning when used with Perl 5.8.7
    DEF095504 - Support for 'ipr' keyword tolerance
    DEF099019 - Export does not give FTP information without extra options

Compatibility Notes:
*   The 'ipr' keyword is not to be used in MRP files as the CBR Tools will
    ignore it.  This functionality has been added to support PREQ775.

-----------------------------------------------------------------------------------

Version 2.81.1009
Made by Engineering Tools, 12/12/2006

Defect Fixes:
    DEF097247 - CBR command diffrel is broken unless you provide version information
    INC096841 - ImportEnv can lead to corrupt environments in low-disc space situations

-----------------------------------------------------------------------------------

Version 2.81.1008
Made by Engineering Tools, 24/11/2006

Defect Fixes:
    DEF097671: CBR assumption makes binaries from a new tools platform orphans 

-----------------------------------------------------------------------------------

Version 2.81.1007
Made by Engineering Tools, 2/11/2006

New Features:
*   Implemented CR0751 - Remove GPG binary from CBR Tools distribution

Compatibility Notes:
*   Users will need to have installed a version of GPGv1.x or PGP Command Line
    version 6 or later to use the import/export functionality.  The tools no
    longer come with a default tool.

-----------------------------------------------------------------------------------

Version 2.81.1006
Made by Engineering Tools, 21/09/2006

Defect Fixes:
    DEF091264	LatestVer should filter results by a pattern
    DEF092244	Use of uninitialised value in Manifest.pm line 128
    DEF092722	exclude.txt parsing dislikes hyphens in wildcard specifications
    DEF092972	ViewNotes creates blank documents when attempting to view notes
                for a component which has not been released
    DEF093204	CBR Tools Quick Reference typo
    DEF093609	validaterel assumptions about path case can lead to CBR errors
    DEF094460	[System Build] - Can't locate EvalidCompare.pm

-----------------------------------------------------------------------------------

Version 2.81.1005
Made by Engineering Tools, 17/08/2006

Defect Fixes:
    DEF092883  [System Build] - CBR Tools identifying folders as orphans

-----------------------------------------------------------------------------------

Version 2.81.1004
Made by Engineering Tools, 08/08/2006

Defect Fixes:
    DEF087684  [CBR Tools] Diffrel can't cope with paths longer than as little as 115 chars
    DEF090893  [CBR Tools] The reltools.ini 'experimentalproxy' keyword is treated as 'proxy'
    DEF088308  [CBR Tools] Run-time error when EPOCROOT is invalid
    DEF088479  [CBR Tools] Tools never warn about missing cbrtargetalias.cfg
    DEF089530  "cleanenv -rf" doesn't remove rogue dirs
    DEF085602  [CBR Tools] Get source for any environment
    INC089568  reltools.ini.ex out of date

Compatibility Notes:
*   GetEnv functionality has been extended to allow the source code for any
    environment to be downloaded, irrespective of whether it is the current
    environment or not.  This is achieved by using the --source-only switch.
*   When using cleanenv it will now remove any empty directories it finds within
    the EPOC tree.  The list of directories to be removed will be displayed
    with the list of files to be removed.
*   If the 'remote_site_type experimentalproxy' option was specified in the
    reltools.ini file, it would actually have been interpreted as 'proxy' and
    not 'experimentalproxy'.  Users using the 'experimentalproxy' keyword will
    find that the tools now respect that keyword.  To get the old behaviour,
    the remote_site_type value should be 'proxy'.
*   The CBR tools now create temporary directories under the system temp dir.
    If your system temp dir is deeply nested, it may be better to override this
    with a shorter path, since there are limitations on internal path lengths
    for certain cbr commands.  This can be done my specifying the 'temp_dir'
    keyword in reltools.ini, e.g. 'temp_dir c:\temp'
*   The CBR tools should produce a warning message if the cbrtargetalias.cfg
    file is missing.  This functionality was not working properly and has now
    been fixed.  This warning message can be suppressed by specifying the
    'no_target_alias_warning' in your reltools.ini.

-----------------------------------------------------------------------------------

Version 2.81.1003
Made by Engineering Tools, 06/06/2006

Defect Fixes:
    DEF065262  [CBR Tools] cleanremote fails to clean old releases (documentation issue)
    DEF084397  Upgrading releases using getenv doesn't remove empty include directories
    DEF085780  ValidateRel fails when no MRP file exists (e.g. due to having no source)
    DEF087482  cleanremote broken in 2.80.1002

Compatibility Notes:
*   If using cleanlocalarch and the copy of the component in the local archive is
    corrupt then cleanlocalarch will give the following error message and continue:
    "Warning: Unable to identify the environment for 'Component Version'. This may
    result in additional component releases being cleaned from the archive.
    (Corrupt release; missing reldata file)".  This replaces the error message:
    "No Reldata file exists for $thisComp $thisVer as it would appear to be corrupt.
    A fresh version shall need to be installed".


-----------------------------------------------------------------------------------

Version 2.81.1002
Made by Engineering Tools, 26/04/2006

Defect Fixes:
    DEF084619: [CBR Tools] Cat X is pre-2.80.1000 Compatible

-----------------------------------------------------------------------------------

Version 2.81.1001
Made by Engineering Tools, 19/04/2006

Defect Fixes:
    DEF068972: [CBR Tools] A CBR component being installed can't be interrupted

-----------------------------------------------------------------------------------

Version 2.81.1000
Made by Engineering Tools, 12/04/2006

New Features:
* GT0278/TREQ0017 Significantly Reduce CBR Build Time
    REQ0035  Add component manifest
     An XML manifest is created during component release - contains Evalid MD5
     checksums of component content.
    REQ0036  ValidateEnv/Rel using Evalid MD5
     Validation uses the manifest checksums rather than installing a temporary
     local copy and generating evalid data every time.

N.B.: The text above is a summary of the requirements.

Defect Fixes:
    DEF058539: [CBR Tools] Timestamp of source clobbered by reapplication of MSDOS attributes
    DEF077956: [CBR Tools 2.80.1001] Unhelpful Warnings

Compatibility Notes:
*   A manifest.xml file is added to each new component published. This can be
    found at the same level as the component reldata file within the archive.

-----------------------------------------------------------------------------------

Version 2.80.1003
Made by Engineering Tools, 04/04/2006

Defect Fixes:
    DEF083821: CBR tools 2.81beta3 breaks the PATH environment setting

-----------------------------------------------------------------------------------

Version 2.80.1002
Made by Engineering Tools, 03/04/2006

Defect Fixes:
    DEF083670: cleanlocalarch stops cleaning
    DEF083808: CBR tools have incorrect "earliest compatible version" in reldata
    DEF077676: CBR tools create perl warnings and unhelpful output given a bad .mrp file
    DEF082745: CBR tools envinfo releasable error should be clearer
    DEF083234: CBR Tools MrpData->Source() method returns some directories

Compatibility Notes:

*   The error message for a bad line in an MRP file has been changed.  The line
    number of the bad line is now printed inbetween the MRP file name and the
    bad line offending line is always printed too e.g. Warning: Invalid line in
    "helloworld\group\helloworld.mrp" (Line 3) - "source\helloworld"
    instead of:
    Warning: Invalid line in "helloworld\group\helloworld.mrp" - .
*   When the EPOCROOT could not be removed from the path the following error
    message was displayed: "Error: Couldn't remove "\" from "afolder".
    This has now been changed to:
    Error: Path does not contain EPOCROOT - EPOCROOT:"\" - Path:"afolder".

-----------------------------------------------------------------------------------

Version 2.80.1001
Made by Engineering Tools, 12/01/2006

Defect Fixes:
    DEF077665: [CBR Tools] does not add any files warning should be a remark

-----------------------------------------------------------------------------------

Version 2.80.1000
Made by Engineering Tools, 06/01/2006

New Features:
* GT0278/TREQ0018 CBR Tools ISC Support
    REQ0018  Comply with new version numbering
     The CBR Tools must adhere to the Engineering Tools versioning standard.
    REQ0037  Update tools documentation
     The CBR Tools documentation must be updated to include new features.
    REQ0045  Arbitrary IRP categorisation (A-Z)
     The CBR Tools must allow arbitrary IPR categorisation of source and
     exports to permit additions within the CKL.
    REQ0076  Enhance existing export filtering
     The CBR Tools export functionality must be able to differentiate between
     source and exports when encryptying based on IPR category.

N.B.: The text above is a summary of the requirements.

Defects Fixed:
    DEF044949  [Reltools] Missing in-source documentation
    DEF052380  [RelTools] Misleading warning message from 2.76.3
    DEF053523  [Reltool] bininfo after preprel does not work
    DEF054781  [Reltools] InstallSnapshot falls over if given no options.
    DEF054800  [Reltools] CBR Release Tools message in 'importenv' is gibberish.
    DEF054806  [reltools] Release tools command 'BuildRel' compatibility break
    DEF055785  [Reltools] DiffRel upset if no source
    DEF058539  [Reltools] Timestamp of source clobbered by reapplication of MSDOS attributes
    DEF058760  [Reltools] GPG decrypt less verbose than GPG encrypt
    DEF060192  cleanlocalarch does not report failure to delete files / directories
    DEF061247  CBR tools Installation document still refers to source_filter keyword
    DEF061580  [RelTools] PASV mode suggested when PASV mode enabled
    DEF061684  GPG Encrypt/Decrypt does not show command executed in very verbose mode
    DEF062294  [RelTools] Validateenv produces warnings
    DEF064016  [RelTools] Validateenv fails if source is not present
    DEF064912  validaterel does not report filename of reclassified export
    DEF065010  CBR Tools treat "-exports" as "exports"

Compatibility Notes:
*   The CBR Tools were incorrectly interpreting the (illegal) MRP syntax "-exports"
    to mean "exports". Version 2.80 of the CBR Tools corrects this defective action
    and will now stop with the fatal error, 'Error: Unknown keyword "-exports" in
    [file.mrp]' should this be encountered (where [mrp.file] is replaced by the
    path to the actual MRP file containing the incorrect syntax). Actions to
    resolve: 1. Ensure no MRP files contain the illegal syntax. 2. Use the
    -export_file syntax instead (if required). 3. Be aware that any files thought
    to have been excluded from export were actually being exported.
*   CBR Tools release 2.76.4 inadvertently 'touch'ed the files as a result of
    reapplying the MSDOS file attributes after unzipping (e.g. during a getenv
    operation). This overwrote the original Modified timestamps with the current
    system time. CBR Tools release 2.80 will preserve the timestamps as all releases
    prior to 2.76.4 used-to. If any dependency has been introduced based on this
    unintentional change then the actions to resolve will depend on the actual
    implementation of the dependency. We do not believe it is likely that any issue
    will exist due to the obscurity and relative short life of this defective
    action.
*   Additional -v (verbose output) has been added to the tools during GPG
    decryption. This will permit the output from the encryption utility to be seen.
    This brings the decryption action into line with the encryption action which
    already displays the utility output. During a CBR import and when in verbose
    mode, this additional output will be included in the command output. The
    additional output will follow the form of the encryption output display in that
    each line will be indented with a tab character. These lines may be safely
    ignored as verbose output.
*   IPR categorisation of source files was until recently restricted to A-G or X
    (for undefined). Any letter: A-Z, is now permitted (with X retaining its special
    property of representing "IPR not specified"). The behaviour in previous
    versions of the tools was undefined should a previously-invalid categorisation
    have been encountered. In the unlikely event that any dependencies were created
    on this undefined behaviour then each will need to be looked at to determine
    sensible resolutions.
*   Export table syntax has been updated to allow for separate treatment of source
    and exports. The old syntax is still supported but more rigorous error checking
    will ensure that any invalid content will cause a fatal error to be thrown. Only
    the keywords "exclude", "exclude_bin", IPR categories consisting single letters
    "A"-"Z" and whitespace will be allowed. Any other punctuation will not be
    permitted, e.g. hyphens, brackets, braces etc. These were not explicitly
    disallowed in the previous versions but must now be, to allow the additional new
    syntax to be checked properly. Actions to resolve any issue: 1. restrict export
    table content to only the above permitted keywords and the new syntax (details
    of which will are available in the documentation).

-----------------------------------------------------------------------------------

Version 2.76.4
Made by Nic Percival, 15/02/2005

From Nic Percival:
* Fixes for:
    DEF054892 - Missing option "exclude_bin" from the documentation in module "Installation"

From Hocine Adjerid:
* Fixes for:
    DEF053737 - [Reltools] CBR Tools Fail to work with "testexports" keyword
    DEF051278 - [Reltools] zip does not accept filenames with '['
    DEF050304 - [Reltools] Commands within the RelTools indicate they are not supported
    DEF050374 - [Reltools] importrel should not rely on EPOCROOT being set
    DEF051241 - [Reltools] CBR tools provided GnuPG does not support IDEA encryption algorithm
    DEF049473 - [Reltools] CBR tools users must not 'send us a patch'
    DEF052150 - [Reltools] importrel/importenv are case sentive in 2.76.3 unlike earlier version
    DEF051424 - [Reltools] RemoteSite::NetDrive unhelpful
* Implemented CR:
    CR-EKOS-653GJ9 :  add the possiblity to exclude binaries from a component when exporting.

From George Sin:
* Fixes for:
    DEF043802 - [Reltools] CleanLocalArch is not atomic in it's move operations
    DEF049619 - [Reltools] viewnotes -d between gt_techview and gt_only_baseline crashes
    DEF049823 - [Reltools] Cleanlocalarch in release tools 2.76.2 documentation needs updating
    DEF047825 - [Reltools] CBR tools inefficient at searching for releases
    DEF043820 - [Reltools] lastestver documentation is unclear
* Implemented CR:
    ABEK-63REXV: Option to overwrite destination when using cleanlocalarch of the CBR tools.
    CLEN-65CEUW: RemoveSource functionality needed for redundant components found during a Getenv\Getrel command
    JROE-62DHSZ: Add support to CBR viewnotes to output HTML on stdout rather than creating a file.
    EMAE-68LJZF: Minimising CBR delta sizes when transferring CBR builds between parties with shared source access

From Larry Knibb
* Fix for:
    DEF053799 - [Reltools] CBR tools do not preserve file attributes


From Conor Lennon:
* Fix for:
    DEF051830 - [Reltools] reltools 2.76.3 causing IO errors
* Implemented CR:
    CLEN-65CF94 Baseline component for DevLib and Documentation components so as to install documention as an option
    CLEN-65CEUW  Remove Source functionality needed for redundant components found during a Getenv\Getrel command

-----------------------------------------------------------------------------------

Version 2.76.3
Made by Iain Williamson, 04/11/2004

From Conor Lennon:
*Fix for:
    DEF050197  [System Build] CBR Warnings in 03387 (8.1a) introduced by new RelTools

-----------------------------------------------------------------------------------

Version 2.76.2
Made by Nic Percival, 08/10/2004

From Hocine Adjerid:
* Fixes for:
    DEF045203  CBR Tools do not support all FTP server s/w
    DEF048538  CBR: Archive::Zip module truncates some files during unzip
    DEF049213  zip.exe does not accept name with '['
    DEF049351  CBR tools do not find cbrtargetalias unless EPOCROOT is set to /

From George Sin:
* Fixes for:
   DEF045331  RelTools v2.74 fail on removesource if full component not present
   DEF046291  Latestver of the reltools does not like archives that don't exist
   DEF047874  Cleanlocalarch determine from the output if it's was a dummy run
   DEF047458  Release tools: ftp_timeout field not used
   DEF047935  Reltools docs error

* Also includes implementation for CR WROS-5ZLKHS Provide a tool which can create a new version
  of a CBR component by copying and manipulating the archive metadata of an existing version

From Iain Williamson:
* Implemented CR ABEK-5z5GXE Usable CBR archive cleaning - new keep_recent_rel
  and keep_recent_env keywords

From George Sin:

* Fixes for:
   DEF047062 [Reltools] CBR Tools fail to identify the need to upversion a component.
   DEF048513 [Reltools] validateenv does not check for additional binaries.

From Uma Ahamed:
* Added fix for DEF045288 - latestver and viewnotes don't work in 2.75.2 with gt_only_baseline

-----------------------------------------------------------------------------------

Version 2.76.1
Made by Iain Williamson, 11/08/2004

From Uma Ahamed:

* Added fix for DEF043802 "CleanLocalArch is not atomic in it's move operations"

* Added fix for DEF046030 "cleanenv removes component without re-installing it"

From George Sin:

* Fixes for:
   DEF043820  lastestver documentation is unclear
   DEF044978  Error in how source is unpacked in the Release tools...
   DEF045715  Incorrect warning about -binary in comms-infras_commdb_cedar
   DEF046148  Release Tools do not allow spaces in their installation directory
   DEF046325  RelTools don't report correct error messages in local arch disc
     full conditions
   DEF046711  Release tools 2.76 cannot install files that already exist and is
     read only...

From Hocine Adjerid:

* Fix for DEF046532  RelTools v2.76 won't configure to work with an internal
    proxy for FTP traffic

-----------------------------------------------------------------------------------

Version 2.76
Made by Iain Williamson, 07/06/04

From George Sin:

* Have added all build from anywhere functionality as part of PR0097.

* The keyword source_map is now accepted in the reltools.ini file.

* In source documentation updated to refect the change.

From Nic Percival:

* Added fix for DEF045096, retry gpg if it fails with return code 2.

From Iain Williamson:

* Fixes for DEF043798, 043802, 044943 and 044944 (various cleanlocal/remote
  archive defects)

From Paul Ross:

* Added fixes for DEF045417, DEF045416, DEF045414, DEF044950, DEF044948
  DEF044947, DEF044946, DEF044781, DEF044778, DEF044777, DEF044775, DEF044773
  DEF044771 (code review defects)

-----------------------------------------------------------------------------------

Version 2.75.2
Made by Iain Williamson, 10/05/04

From Paul Ross:

* Suppressed warning of missing alias file if not using 'all' functionality
  (DEF044726)
* Suppressed directory listing during FTP (DEF044724)

From Iain Williamson:

* Fixed 'argument "n.nn.n" isn't numeric...' warning (DEF044699)

From George Sin:

* Fixed broken link when building 'MakingReleases' doc (DEF044976)

-----------------------------------------------------------------------------------

Version 2.75.1
Made by Iain Williamson, 23/04/04

From Paul Ross:

* Fixed bug where tools failed to obtain the correct IPR category for export
  restricted files (DEF044565)

-----------------------------------------------------------------------------------

Version 2.75
Made by Iain Williamson, 21/04/04

From Paul Ross:

* Added support for the aliasing system in MRP files, for example using
  a target 'ALL' in an MRP file.

* The data needed to resolve aliases is in \epoc32\tools\variant\cbrtargetalias.cfg,
  if this is absent a warning is issued only when required and then only once.
  The warning can be suppressed by the presense of a flag 'no_target_alias_warning'
  in the reltools.ini file.

* In IniData.pm added APIs ReadTargetAlias(), ReadTargetAliasFile() to read the
  alias file. Added APIs HasTargetPlatforms() and TargetPlatforms() to resolve
  MRP aliases. Added API CheckAliasWarning() to handle the absence of alias
  file warning.

* In MrpData.pm added implementation code in HandleBinSet() to provide resolution of
  aliases if appropriate.

From Adrian Taylor:

* Removed obsolete GenMrp and UpdateMrp commands.

* Marked several obscure tools as 'unsupported'

* Added warnings if -binary or -export_file are not doing anything.

* Added two new types of remote archive: 'experimentalftp' and
  'experimentalproxy'. These are exactly the same as 'ftp' and 'proxy',
  but use a different algorithm for listing the contents of the FTP site.
  You may find that these new remote site types work successfully with
  CleanRemote, whilst the standard 'ftp' and 'proxy' types almost
  certainly will not.

* Rejigged the test suite to use a real FTP site for testing.

-----------------------------------------------------------------------------------

Version 2.74
Made by Adrian Taylor, 12/02/04

This version is identical to 2.73-Testing-Only.

-----------------------------------------------------------------------------------

Version 2.73  *** TESTING ONLY ***
Made by Adrian Taylor, 30/01/04

From Adrian Taylor:

* Added -i flag to GetRel

* Ensured little dots march across screen even with the dodgy IO layer
  of Perl 5.8.x

* Fixed bug where tools didn't complain if EPOCROOT wasn't set (DEF041251)

* 'component' argument to EnvInfo -f <component> was case-sensitive. INC040759.
  Fixed.

* Added Optimisation document.

* Added new field to reldata: 'first compatible version'. This shows the first
  version of the tools that a given release should work with. It's set based on
  the CategoriseXXX features in the reltools.ini. GetRel and GetEnv issue a
  warning if they're trying to install a release that's too recent.

* Added optional version number filter to LatestVer, so it only shows versions
  with a certain phrase in their version number.

* Tests for GetSource -i, GetRel -s and GetRel -si added to test suite.

* Fix for serious bug, introduced in 2.71, where duplicate ownership files were
  sometimes not reported.

* Increased diagnostics for problems listing directories on FTP sites, to try
  to work out what's up with the Symbian FTP site.

* Increased robustness of RemoteSite::FTP::DirList now I've seen the symptoms
  that the Symbian FTP site has.

* Improved efficiency of ExportEnv - it no longer does so many redundant checks
  to find out if a release has already been exported.

* Upgraded Net::FTP to libnet-1.17

* Reverted 2.72 change where FTP connections used 'dir' instead of 'ls'. This
  will reveal problems with CleanRemote, which I have tried to work around.

From Matt Davies (merged by Ade):

* Fix for INC040720 - CBR Tools: Categorised Exports cannot have spaces in the source path

-----------------------------------------------------------------------------------

Version 2.72
Made by Adrian Taylor, 4/12/03

From Adrian Taylor:

* Added 'testexports' MRP directive

* Re-enabled limited SourceInfo functionality

* Fixed many bugs in CleanRemote.

* Ensure 'PGP passphrase' prompt is never invisible even on Perl 5.8.x

* Added \epoc32\release\tools\* to the list of standard ignores, as the
  files in there are intermediate files. (They get copied to \epoc32\tools,
  which is the final resting place). See DEF039764 for the reasoning.

* Prevented the use of Win32::Semaphore module when disable_win32_extensions
  is turned on

From Joe Branton:

* Added checks to ensure that all exported files referred to by an MRP file physically
  exist. Also added a defensive check to Utils::ZipList to throw an error if any
  of the files being zipped are not present (previously such situations were being
  ignored).

-----------------------------------------------------------------------------------

Version 2.71
Made by Joe Branton, 08/10/2003

Know Problems:

* The command 'SourceInfo' is broken in this release.

From Adrian Taylor:

* Removing -d option from LatestVer documentation

* Removed annoying FTP site prompting with LatestVer -vv when no FTP site
  defined.

* Prevented the version number '0' which confused the tools

* Fixed bug which prevented BinInfo <file> working if the component was
  pending release.

From Joe Branton:

* Added support for EPOCROOT with a value other that '\'. When installing binaries
  they will be installed into %EPOCROOT%\epoc32. When making releases, EPOCROOT is
  not stored in the zip files, thereby allowing a release to be installed into an
  environment configured with a different EPOCROOT.

* Added support for a new environment variable - SRCROOT. This is similar to EPOCROOT
  except that it defines where the release tools install source (by default - the -i
  option can still be used to override this). SRCROOT information is not stored in
  release zip files.

* Added support for relative paths in MRP files. You can now do things like:

    binary . all
    exports ..\somepath

  Such paths are read as being relative to the directory inwhich the MRP file is stored.
  If absolute paths are specified, the following rules apply to each keyword:

    'notes_source <file>'                    - SRCROOT is prepended to <file>.
    'source <file|dir>'                      - SRCROOT is prepended to <file> or <dir>.
    '[-][test]binary <abld_path>'            - SRCROOT is prepended to <abld_path>.
    '[-][test]binary <file|dir>'             - EPOCROOT is prepended to <file> or <dir>.
    'exports <abld_path>'                    - SRCROOT is prepended to <abld_path>.
    '[-]export_file <src_file> <dest_file>'  - SRCROOT is prepended to <src_file>.
                                             - EPOCROOT is prepended to <dest_file>.

  Note, it is assumed that all components are EPOCROOT compliant (i.e. only generate files
  within %EPOCROOT%). Currently at least one component (Java) is known to not comply. This
  has the consequence that it is not currently possible to release Java using an EPOCROOT
  of anything other than '\'. It also means that when installing an environment containing
  Java, its 'erj' directoy will be put in %EPOCROOT%\erj rather than \erj.

  Tools developers note, within MrpData all paths are stored in absolute form, but
  without EPOCROOT or SRCROOT at the beginning. This is because parts of MrpData get
  written into RelData objects, and these need to be independent of EPOC/SRCROOT. The
  consequence of this is that care must be taken both within MrpData and by users of
  MrpData to prepend EPOCROOT or SRCROOT as appropriate before using the paths.

* Added support for :zip statements in the PRJ_EXPORTS section of bld.inf files. Note,
  at the time of writing bldmake.pl contained bugs in it's implemention of this
  functionality. Tested against a hacked version of bldmake.pl that contained fixes to:
    a) "abld -w export" listing "\" as an export (bug in GetArchiveExportList()).
    b) "abld -w export" not listing exports relative to EPOCROOT.

-----------------------------------------------------------------------------------

Version 2.70
Made by Adrian Taylor, 07/08/2003

From Adrian Taylor:

* Better error checking of 'unzip' return code, detecting invalid releases.
  Similarly with GPG.

* Fix to allow 'perldoc CleanEnv' to produce the command manual page,
  rather than the manual page for the internal module.

* Fixed problem with -f option on Push/Pull/Rel/Env

* Worked around bug in Perl 5.8.0 itself, which prevented GetRel -p and
  MakeRel -p from working (Perl bug #21217)

* Fixing minor bug in test suite t_snapshot and Perl 5.005

-----------------------------------------------------------------------------------

Version 2.69
Made by Adrian Taylor, 30/7/2003

From Adrian Taylor:

* Fixing bug in ValidateEnv which resulted in complaints about "uninitialised
  value at line 644".

-----------------------------------------------------------------------------------

Version 2.68
Made by Adrian Taylor 23/7/2003

From Adrian Taylor:

* Fixing bug in ValidateRel. If there was a component with binary files,
  none of which were within \epoc32, and no source code files, its status
  would always be reported as clean by validation.

-----------------------------------------------------------------------------------

Version 2.67
Made by Joe Branton 9/07/2003

From Adrian Taylor:

* Fixing bug in ValidateRel. If you had a pending release component, then
  you validated against a component that didn't match what you had, the tools
  got temporarily confused and you had to PrepRel the component to get things
  back to normal.

From Joe Branton:

* Added '-d' option to CleanLocalArch to allow dummy runs to be performed.

* Changed behaviour of CleanLocalArch so that it cleans entire releases - previously
  it left reldata files behind in an attempt to preserve release note history. However
  with this file in place the tools will not warn the user if they attempt to install
  the corresponding release even though there is nothing to install. This issue
  needs to be addressed in a more fundamental way. For the time being cleaned releases
  are removed without trace.

* Removed output to STDERR from the majority of the tools. Note, this has not been done
  for the Net (FTP etc) modules and IPRTOOL since sources are not technically part of
  the release tools and we don't want to branch them.

-----------------------------------------------------------------------------------

Version 2.66
Made by Adrian Taylor 24/06/2003

From Adrian Taylor:

* Reinstating CleanLocalArch command

-----------------------------------------------------------------------------------

Version 2.65
Made by Joe Branton 16/06/2003

From Adrian Taylor:

* Fixing bug in MakeSnapShot - no error message was printed if the filename
  was not specified

* Fixing bug which prevented 'viewnotes -s <comp>' when <comp> not installed

From Joe Branton:

* Fixed defect that caused .lib file binaries (and potentially other duplicate files
  to be incorrectly categorised. Duplicate files should now be put into the 'unclassified'
  category so that they are available regardless of the user's 'required_binary'
  configuration.

-----------------------------------------------------------------------------------

Version 2.64
Made by Joe Branton 8/5/2003

From John Roe (merged by Joe Branton):

* Fixed bug in mrp parser that caused an error to be thrown when parsing mrp files
  with multiple "exports" statements with export classification enabled.

-----------------------------------------------------------------------------------

Version 2.63
Made by Andy Salter 14/04/2003

From Andy Salter:

* Added EnvUserName to reldata.pm and viewnotes.

-----------------------------------------------------------------------------------

Version 2.62
Made by Joe Branton 07/04/2003

From Adrian Taylor:

* Fixed bug that prevented reltools.ini keyword 'pasv_transfer_mode' from working.

* Added helpful error message if Utils::SplitFileName dies due to a known bug in Perl 5.6.0 (fixed in 5.6.1)

* Added more files to blddocs

* Ignore whitespace at start and end of lines with getrel -p

From Andy Salter:

* Added -o option to ViewNotes, to allow writing output to a file or directory.

From Joe Branton:

* Added utility InstCol2. See documentation for details.

* Fixed minor interface bug in BinInfo - died nastily if given no arguments.

* Fixed defect in ini file parser that caused spurious "Unknown keyword" errors to be
  displayed when running the test t_exportimport. It's unlikely that this defect would
  ever be seen in 'the wild' because it would have been necessary for the Perl variable
  $1 have been set before parsing the ini file. Since the tools always parse the ini file
  pretty much before doing anything else, this is unlikely to happen. (Also in 2.60.01)

* Fixed identical problem to that described above in MrpData. (Also in 2.60.01)

* Integrated latest version of IPRTOOL (provided by Uma Ahamed) which fixes problem
  relating to '.' characters in directory names. Removed corresponding assertions from
  MrpData.

From Iain Williamson (merged by Joe):

* Fixed defect in the way the required_binaries reltools.ini keyword is handled. Now,
  for example, specifying 'wincw' will not result in 'wins' also being installed.
  (Also in 2.60.01)

* Added -i <source install directory> option to GetEnv (mirrors GetSource -i option).
  Note, the supplied patch was slightly modified - the logic for checking that -i is
  always accompanied with -s was wrong. (Also in 2.60.01)

-----------------------------------------------------------------------------------

Version 2.61
Made by Joe Branton 13/03/2003

From Joe Branton:

* Extended the behaviour of Im/ExportRel regarding the handling of a list of component
  versions specified in a text file. The commands now support im/exporting multiple
  versions of the same component.

* Fixed minor interface bugs in ViewNotes. Now correctly reports when a component
  does not exist, rather than displaying an empty web page.

* Added 'dummy run' option (-d) to CleanRemote.

* Overhalled configuration of the automated tests. There is now a 'developer_specific.txt'
  configuration file in the 'configs' directory which should be all developers need to
  change in order to set up the test harness. The various configurations are generated
  using a new module ConfigMaker. This provides some C pre-processor like functionality
  to allow the amount of duplication between configurations to be minimised. See the test
  documentation for details.

* Fixed defect in ini file parser that caused spurious "Unknown keyword" errors to be
  displayed when running the test t_exportimport. It's unlikely that this defect would
  ever be seen in 'the wild' because it would have been necessary for the Perl variable
  $1 have been set before parsing the ini file. Since the tools always parse the ini file
  pretty much before doing anything else, this is unlikely to happen.

* Fixed identical problem to that described above in MrpData.

* Added MrpComplexity command. See documentation for details.

* Fixed defect in PrepEnv interactive mode that caused it to prematurely abort if an
  internal version was not specified when internal versions are required. It now reports
  an error and carries on.

* Added new commands MakeSnapShot and InstallSnapShot. See documentation for details.

From Adrian Taylor:

* Tidied error message in PathData/ProjectBased

* Fixed regression in 2.59 where diffenv -v no longer overrode -d

* Clarified documentation of -a in latestver

* Added further documentation for -n in viewnotes

* Clarified messages printed by validate[env|rel] -vs

* Spaces at the end of 'source XXX' lines in MRP files are now ignored

Note this release did NOT contain the changes made in 2.60.01 below. These fixes
have been merged in 2.62.

-----------------------------------------------------------------------------------

Version 2.60.01
Made by Joe Branton 31/03/2003

From Iain Williamson (merged by Joe):

* Fixed defect in the way the required_binaries reltools.ini keyword is handled. Now,
  for example, specifying 'wincw' will not result in 'wins' also being installed.

* Added -i <source install directory> option to GetEnv (mirrors GetSource -i option).
  Note, the supplied patch was slightly modified - the logic for checking that -i is
  always accompanied with -s was wrong.

From Joe Branton (bug fixes taken from latest branch to get tests to pass):

* Fixed defect in ini file parser that caused spurious "Unknown keyword" errors to be
  displayed when running the test t_exportimport. It's unlikely that this defect would
  ever be seen in 'the wild' because it would have been necessary for the Perl variable
  $1 have been set before parsing the ini file. Since the tools always parse the ini file
  pretty much before doing anything else, this is unlikely to happen.

* Fixed identical problem to that described above in MrpData.

----------------------------------------------------------------------------------
Version 2.60
Made by Joe Branton 26/02/2003

From Joe Branton:

* Fixed defect in new export categorisation functionality that caused a
  "Can't use string as an ARRAY" Perl error for components whose mrp file contained
  an 'exports' statement, but which did not actually export anything.

* Changed the way that exported files are IPR classified. Previously the classifications
  were read from the corresponding source file classifications. However, this meant
  that unless exported files are released as source, the tools would fail to find
  the classification and throw an error. Now IPRTOOL is invoked to explicitly classify
  the source of every  exported file, which lifts this limitation.

-----------------------------------------------------------------------------------

Version 2.59
Made by ---, --/--/--

From Adrian Taylor:

* 'envinfo' and other read-only commands will no longer try to create all the
  archives listed in your reltools.ini.

* Fixed documentation error in latestver

* Added check that 'source' directories do not contain '.', because iprtool
  fails and therefore no source gets packaged up.

* Improved realism of 'fake abld' in test suite.

* Added check that archive_path lines in reltools.ini have a remote path
  specified, when it's needed.

* Added -d flag to 'ViewNotes' which produces a single HTML page concatenating
  the release notes between one environment and another.

* Changed DiffEnv to use a new class, EnvDifferencer.pm, which is also used
  by ViewNotes.

* Added warning to CheckBc that it requires Perl 5.6.1

* Added information to "Installation" about where to get Perl 5.6.1

* Added tests for 'viewnotes'. Added minimal tests to ensure that CheckBc
  and CheckRls do at least run

* getenv -o now overwrites binaries as well as source (including pending
  release components)

* Added new "Further Information" document and added information to
  "Quick Start".

* Fixed bug making releases of 'tools rel' or 'tools deb' components

From Joe Branton

* EnvSize now checks that the user has provided a component name before attempting
  to calculate its sizes.

* Added 'categorise_exports' keyword and corresponding functionality. See the
  'Installation' section in the documentation for details.

* Added '[-]export_file' mrp keyword and corresponding functionality. See the
  'Making Releases' section in the doucmentation for details.

* Added '-d' option to blddocs. By default 'Implementation Notes' are no longer
  generated. This option can be used to override the default.

* Added 'exclude' keyword and corresponding functionality to the export table parser
  ExportData. See the 'Installation' section in the documentation for details.

* Changed the failure report summaries of ImportEnv and ExportEnv to print a formatted
  table.

* Added multi-volume export / import functionality to allow exports to be done
  do writable CD drives and the like.

-----------------------------------------------------------------------------------
Version 2.58
Made by Adrian Taylor, 15/01/03

From Adrian Taylor:

* Fixed bug introduced in 2.56 where an environment scan would continue
  to run if a binary file didn't exist. This reported very confusing
  error messages from envinfo and makeenv, and if you agreed to the
  prompts, cleanenv would delete extra files.

* Added extra documentation and warning messages to prepenv, to note
  that it doesn't always notice dirty components.

* Fixed prepenv bugs. Firstly, it ignored new MRP locations. Secondly,
  it misleadingly implied you didn't have to specify a new internal
  version number for updated components.

* Table formatter always now displays using text format if the output
  is not a TTY.

* Added -d flag to exportrel and exportenv, which means 'dummy run'.
  It reports what would happen, without actually doing anything.
  In particular it reports what PGP keys will be used to encrypt each
  file.

-----------------------------------------------------------------------------------

Version 2.57
Made by Adrian Taylor, 09/01/03

From Joe Branton:

* Fixed bug relating to unpacking zip files (say from a getsource) into a directory
  that doesn't exist. It seems that zip can cope with a single directory not exisiting,
  but not more than one.

* Added vtable checking functionality to CheckBc.

* Added options to CheckBc to allow individual tests to be disabled.

* Added utility CheckRls.

* Added check to ensure the EPOCROOT environment variable is set to '\'.

* Fixed bug in PrepRel/Env that allowed a new mrp file to be specified without specifying a new version.

From Adrian Taylor:

* Added envsize command

* Added reporting of release size into viewnotes

* Added extra check to exporting, to ensure that the size of the resulting
  file on the FTP site matches the expected size.

* Added flag -x to exportenv, to just check the size of the exported files
  instead of doing any exporting. This can provide a report of what exported
  components are corrupted, if there's a dodgy FTP site.

* Fixed bug in MrpData where directories reported by 'abld -what' would
  get included in the zip file, instead of their contents.

* Optimised sourceinfo <component>

* Added extra check that the component name in the MRP file matches the component
  name in the environment database. ("The Fitzgerald Case").

* Changed test suite so t_run requires a drive letter as a command-line
  argument. (Because I managed to run it on C: and delete most of c:\apps
  before I realised what was happening...)

* Importenv/exportenv problem summary now displays what went wrong.

* Added -t flag to validaterel, which stops deletion of the temporary
  directory. This allows further investigation with evalid and other tools.

* Fixed MRP parsing bug where there were comments on the ends of lines

* Made third (remote path) argument to 'archive_path' in reltools.ini optional

* Fixed typo in listcomponents help

* Fixed bug in Excel table formatter where 001 was coming out as 1

* Added -a [number] option to latestver, to show the last 'n' releases.
  Also allowed -vvv to work even if there is no remote site properly
  defined.

-----------------------------------------------------------------------------------

Version 2.56
Made by Adrian Taylor, 21/11/02

From Adrian Taylor:

* Added SourceInfo tool. This shows what source files belong to
  a component, and vice-versa.

* Added BuildRel tool, which will try to build all the platforms
  listed in the MRP file of that component.

* Stopped envinfo -f from classifying all the source code. We now do
  it only when you actually require the classified source code. This
  makes environment scans about five times as fast when you have lots of
  components pending release.

* Added table_format keyword to reltools.ini, allowing you to see the
  output of envinfo, latestver and similar commands in Excel, HTML or
  CSV format if you like. (Reason: the reports that sourceinfo outputs
  are far too long to be readable in a console).

* Added 'all' option for binary MRP syntax. e.g.
   binary \rabbit\hole\group all
  (Reason: a licensee wanted all possible binaries delivered).

* Changed exportenv to warn if components aren't in the export table,
  before it starts tranferring data.

* Added a little more readily available information to viewnotes output.

* Fixed bug in viewnotes -s <comp> where <comp> didn't exist - the error
  message was illogical.

* Fixed bug in MergeEnvironments where -i would stop it all from working

* Fixed bug where extension makefiles using the TO_ROOT variable would
  cause envinfo to report unknown origins.

* Fixed typo in spelling of disable_win32_extensions. The old spelling
  still works.

* Tidied up the options that were added to prepenv in 2.55.

* envinfo now states component names in error messages during its
  scanning phase.

* Checking for error-free completion of bldmake bldfiles.

* Fixed bug where duplicate item checking for MRP binaries was
  sometimes case-sensitive with categorise_binaries

* Notice more errors from abld build -w and build makefile to fix
  them.

* Fixed bug where "exports xxx" line in MRP wouldn't trigger bldmake. Normally
  this was OK because there would be a 'binary' line first which would call
  bldmake.

-----------------------------------------------------------------------------------

Version 2.55
Made by Adrian Taylor, 07/11/2002

From Joe Branton:

* Changed CleanEnv so that it removes empty directories associated with the clean.

* Added -d option to DiffEnv. This causes the command to ignore components that are
  younger in the first environment compared to the second. Useful when younger
  releases are known to be backwards compatible with older ones.

* Added 'globbing' functionality to BinInfo. You can now do things like:
	bininfo \epoc32\release\wins\udeb\*.dl?

From Adrian Taylor:

* Fixed bug where project-style archive structures would not successfully create
  directories on network shares.

* Added -t option to diffrel, to allow you to specify a particular diffing tool
  on the command line. This is useful with -t "diff -bBru" to produce diff
  files, that can later be used with the 'patch' command to patch another version.

* Removing troublesome debug print from RelData when using -v and a new-style
  archive path.

* Added lots of options to prepenv. -l: shows latest version of each component
  available. -i <num>: always use this internal version number. -m: don't
  prompt for MRP location. -p: skip components that are pending release.
  These options work, but aren't very polished yet.

* Added minimal test scripts for prepenv, getsource, removesource.

* Added pushrel and pullrel (at last). In the process, I abstracted out
  a lot of PushEnv, PullEnv, PushRel and PullRel into a new module,
  called PushPullRel.

* Added removesource.

* Make cleanenv -f less confusing with another message.

* bininfo <component> now works for components that are pending release.

* bininfo <file> now reports if a file is part of an ignore_binary line

* getrel -o now overwrites binaries as well as source.

-----------------------------------------------------------------------------------

Version 2.54
Made by Adrian Taylor, 20/09/2002

From Joe Branton:

* Generally improved CheckBc. It now has been run over a pair of Hurricane source
  trees. Only e32 and f32 are still causing problems.

* Changed viewnotes so that it compiles HTML files into \epoc32\relinfo\notes and
  reuses them if they're already present.

* Fixed bug that caused auto-generation of abld.bat to fail if 'cleanenv -r' had
  previously been run on the environment.

* Modified interface to GetSource - an install directory can now be optionally be
  specified using the switch '-i'. Previously it was specified by the last parameter
  which made it useless if you wanted to the source for all components.

* GetSource when used to get the source for all components now doesn't abort at the
  first error.

* Commands that remove comonents now throw an error if their not able to remove a
  particular file (previously they just warned). This is to prevent the tools getting
  into the situation where subsequently the zip utility prompts the user about
  overwriting files.

* Added some additional robustness to the signature generation code. Previously it
  didn't ensure that all entries in the zip file were files. It turns out that some
  zip utilities put directories as entries. If these kind of zip files are
  encountered now, the signature is generated correctly and a warning is displayed.

From Adrian Taylor:

* Added new error check to project-based path data module. It now gives you
  a sensible error message if you enter a non-existent project name.

* Fixed "uninitialized value" warning from bininfo after a validateenv against
  an external environment where you validated against a component whose binaries
  didn't exist on the local site.

* Finally fixed source validation. Previously, there were occasional false-
  positive results (i.e. wrongly reported dirty) where a component had
  several source code directories listed in its MRP. The sorry tale begins
  with the need to check for added files. To do this, it has to deduce
  what the root source code directory is for the component, then check
  whether any extra files have been added inside that directory. If there
  are several root directories, the algorithm goes wrong and selects too
  'wide' a directory, where it probably will find other files inside.

  The only way to solve this was to remember the "source" lines stored
  in the MRP. From this release on, we remember that information and
  store it in the release packet. We later use that information in source
  validation.

  This means that source validation won't fully work against releases made with
  earlier versions of the release tools. But don't worry: you'll get a nice
  error message explaining the situation. The only part of source validation
  which fails is the check for added files - the check for removed files
  and changed files still works fine.

* Expanded test suite to test a variety of 'source' MRP statements.

-----------------------------------------------------------------------------------

Version 2.53
Made by Adrian Taylor, 21/08/2002

From Adrian Taylor:

* Fixed bug where remote archive locations were getting made lowercase if you
  use the new archive-path arrangement.

* Made blddocs runnable from anywhere. Documents whichever tools version is
  in your $PATH.

* Added some extra commands/modules into BldDocs.

* Fixed bug where some validateenv would set some components to dirty instead
  of "binaries clean, source dirty". Validaterel did not have this bug.

* Fixed an untidy error message in latestver

* Added new tool, "MergeEnvironments". This is a specialised tool for taking
  a subset of the components from one environment, and a subset from another,
  and making a third environment (as a new release but without any binaries
  or source). The intention is that you would then validate against that
  merged environment. Currently the tool only supports the subset selection
  using the prefix of the version number.

* Made error checking in RelData.pm and MrpData.pm stricter

-----------------------------------------------------------------------------------

Version 2.52
Made by Joe Branton 01/08/2002

From Joe Branton:

* Fixed bug in mrp parsing code that caused an assertion to fail is the component
  concerned didn't have any binaries.

* Fixed bug in mrp parsing code associated with the classification of 'tools' binaries.
  Previously everything was expected to support the build variants 'udeb' and 'urel'.
  'tools' has now been made a special case, and are always unclassified.

* Fixed bug in mrp parsing code the prevented '-binary' from working properly when use
  the 'categorise_binaries' reltools.ini keyword. Previously '-binary <file>' only excluded
  binaries from the 'unclassified' category. They are not excluded from all categories.

-----------------------------------------------------------------------------------

Version 2.51
Made by Adrian Taylor 26/07/2002

From Adrian Taylor:

* Fixed bug where envinfo -f didn't work for pending release components when
  using a project-based archive path

* Fixed a bug where validation would die if it had to make a fake signature

* Fixed cosmetic error message if a release didn't exist

From Joe Branton:

* Fixed a bug where envinfo would complain of uninitialized values when
  MRPs contained some strange targets

-----------------------------------------------------------------------------------

Version 2.50
Made by Adrian Taylor 24/07/2002

From Adrian Taylor:

* Restructured the archive path arrangement. A new "archive_path" keyword
  is now possible instead of the old "archive_path_file" keyword. See
  the Installation document for details. This is optional; the old
  arrangement will still work.

* Fixed bug in binary categorisation where components with no binaries could
  not be exported or envinfo'd.

* Added 'listcomponents' command

* Extended latestver with -aa switch, -vv and -vvv switches, and the ability
  to show output about all installed components.

* Fixed error in "usage" message of envmembership

* Added additional test cases: t_bininfo, t_pushpullenv, t_latestver,
  t_envmembership, t_envinfo, t_exportimport

* Added -f ("force") flag to CleanEnv, to allow easier use in test scripts

* Fixed bug in source validation where the "binaries clean, source dirty" status
  appeared as "dirty" if the component had been dirty immediately beforehand

* Fixed error message in ValidateRel if a non-existent component was specified

* Components can now be validated against an external version even if they're
  pending release.

From Joe Branton:

* Fixed bug in ViewNotes that prevented versions containing upper case characters from
  being previewed.

* Added CheckBc utility - does some simple tests for backwards compatibility breaks.

* Added two new reltools.ini keywords - 'categorise_binaries' and 'required_binaries'.
  The first instructs the tools to categorise binaries according to their build
  variants. The second allows a particular individual (or project) to select which
  build variants they require. See the documentation 'Installation Guide' for more
  details.

------------------------------------------------------------------------------------

Version 2.30
Made by Adrian Taylor 23/7/2002

From Adrian Taylor:

* Fixed regression caused by CommandController changes where validaterel would
  no longer print second and subsequent validation failures.

-----------------------------------------------------------------------------------

Version 2.29
Made by Adrian Taylor 22/7/2002

From Adrian Taylor:

* Fixed bug where source directories with "authorised <licenseename>" IPR data
  did not get zipped up.

-----------------------------------------------------------------------------------

Version 2.28
Made by Adrian Taylor 1/7/2002

From Adrian Taylor:

* Fixed bug introduced by source validation, where previously dirty components
  refused to go clean again.

* Used updated version of iprtool from Richard Harrison, which reports even
  directories containing just "distribution.policy". Removed the workaround
  added in 2.26.

-------------------------------------------------------------------------

Version 2.27
Made by Adrian Taylor 28/6/2002

From Adrian Taylor;

* Fixed bug in CommandController stuff that stopped imports and exports working

------------------------------------------------------------------------------------

Version 2.26
Made by Adrian Taylor 27/6/2002

From Adrian Taylor:

* Changed behaviour of ValidateRel <comp> <ver> so that it will change the version
  number in the environment database if the validation succeeds.

* Fixed bug in MrpData.pm where directories with spaces in their name were not
  getting included in source zips.

* Fixed bug in MrpData.pm where . and .. were accidentally getting put into all
  release zips. (So far as we know, this had no effect.)

* Changed (binary) validation to work properly for components which release
  binary files outside \epoc32

* Changed validation to overwrite files in the temporary directory,
  so it should keep going under more circumstances

* Fixed bug where source validation would try to validate source for components
  without any source code.

* Worked around a bug in iprtool where directories containing just "distribution.policy"
  were not put into zip files. This upset validaterel later on.

* Fixed bug in ValidateRel where it didn't keep going after first error.

* Added "\epoc32\winscw\c\*" to the list of standard ignores

From Joe Branton:

* Added -r option to DiffRel, and fixed bugs associated with the -l option. This means
  that now you can specify exactly which directories you'd like to diff (both the local
  directory and/or the directory within the release zip file) if you want to.

* Added a new class (CommandController) that allows certain types of commands to run
  concurrently, and prevents others from running concurrently. Also gave temporary
  directories a unique name to allow for this concurrency.

* Added new keyword to IniData - disable_win32_extentions - this currently only disables
  the above CommandController functionality, but I intend to use it more widely in the
  future.

------------------------------------------------------------------------------------

Version 2.25
Made by Adrian Taylor 18/6/2002

From Adrian Taylor;

* Fixed bug in source validation which incorrectly classified some components as
  'binaries clean, source dirty' when they were in reality completely clean.

-----------------------------------------------------------------------------

Version 2.24
Made by Adrian Taylor 17/6/2002

From Adrian Taylor:

* Fixed RelData.pm so that latestver works correctly even when there are
  corrupt (blank) reldata files in the archive.

* Added -s flag to ValidateRel and ValidateEnv, to permit the validation of
  source code. The purpose of this is to detect changes to source code that
  don't cause changes in the binaries. (For example, changes to distribution
  policy). There are some associated changes in EnvDb; in particular
  the addition of an extra status "binaries clean, source dirty" which
  is only ever set by these two commands.

* Updated test example output for the above change and various other recent
  changes.

------------------------------------------------------------------------------------

Version 2.23
Made by Joe Branton 10/6/2002

From Joe Branton:

* Fixed bug in Utils::CommonDir that caused a GetSource to get stuck in a
  'Use of uninitialized value' infinite loop.

From Lee Luchford:

* Updated iprtool to latest version from GT. Fixed defect in previous version
  which outputted all directory names in upper case

-----------------------------------------------------------------------------------

Version 2.22
Made by Joe Branton 10/6/2002

From Adrian Taylor:

* Added facility to prefix # with \ in reltools.ini, to escape literal #
  (in this case the need was for an FTP site password)

From Joe Branton:

* Fixed bug in mbld that caused '-h' to fail.
* Changed behaviour of environment scans to improve performance when there are a lot
  of files that will be ignored. Previously the \epoc32 tree was scanned fully and
  at the end files to be ignored were removed from the data structure. Now the ignore
  list is checked during the scan to allow entire directory branches to be ingored
  without scanning them.
* Added functionality to ViewNotes to allow it to display a summary of all the
  release notes in a specific (or the current) environment.
* Added 'disallow_unclassified_source' keyword to IniData and changed MrpData to
  make use of the new flag. This is intended to allow sites to ensure that all
  source code is given a category.
* Fixed bug in GenMrp that was causing binary statements to be added for aif and mbm
  files that live in \epoc32\data\z.
* Changed GenMrp to ignore the platform 'cw_ide' (for the time being).
* Changed GetSource so that it displays the name of the significant directory the
  source is being unpacked into.
* Changed GetSource so that it doesn't allow you to overwrite files that are already
  present in your development drive.
* Added '-o' option to GetSource, GetRel and GetEnv to allow existing source code
  to be overwritten.

-----------------------------------------------------------------------------------

Version 2.21

Made by Lee Luchford 29/05/2002

From Lee Luchford:

* Added 'cleanremote' tool to delete unwanted releases from remote archive and made
  necessary modifications to RemoteSite modules to support this tool

* Removed changes to all tools related to introduction of CleanLocalArch tool
  (e.g checks to see if releases have been cleaned) It has been decided to remove
  this tool in future

* Fix for component name case dependency bug in getrel

From James Gibbons:

* Modified ValidateRel so that the binaries of a component on the current drive can be validated against
  a version of the component other than the version held in the environment database.

* Fixed usage text for EnvMembership so the name of the command is correct.

From Joe Branton:

* Fixed a bug in diffrel where it didn't cope with diffing components where the top level directory
  for a component contained files (rather than just directories).
------------------------------------------------------------------------------------

Version 2.20

Made by Lee Luchford 03/05/2002

From Lee Luchford:

* Added ftp_timeout keyword to reltools.ini. This overrides the default timeout value which
  may not be long enough for poor FTP connections

* Added ftp_reconnect_attempts to reltools.ini. This overrides the default number of reconnect
  attempts made when the connection to the FTP site is dropped. This should be set to higher
  value for poor FTP connections

* Fixed a bug in EnvDb.pm related to the getsource command. The regular expression used
  to grep for source files just looked for the word 'source' in the file name. Since the
  file name includes the path if the release directory contains the string 'source'
  all zips in the release dir are unzipped, including binaries.

* Fixed getrel to handle case dependency of version numbers

-----------------------------------------------------------------------------------

Version 2.19
Made by Joe Branton  15/04/2002

From Lee Luchford:

* Modified NotesCompiler.pm to interpret new lines as line breaks in HTML

* ImportRel now checks to see if releases exist locally before connecting to the remote
  and asking for passwords etc...

* ValidateRel now takes the name of a file containing a list of
  component names as an argument. All of the components listed in the
  file are validated

* Fixed case dependency of version numbers bug in DiffEnv

* Fixed warnings in BldDocs

* Fixed POD errors in FAQ document

From Joe Branton:

* Fixed bug that caused 'viewnotes -s' to miss out releases if there are more than one
  release directory with exactly the same modified time. Added a record of 'the right
  thing to do' to todo.txt (read the release dates out of RelData).

* Fixed bug in bininfo that caused it to report incorrectly that there is no information
  available when the owning component is pending release (file name case problem).

* Fixed bug in makefile auto-generation code that caused components with multiple 'binary'
  statements in the mrp file to only have their first set of makefiles generated.

* BinInfo if given a component name, now displays a list of all files owned by that
  component and their current status.

* Archive path files are now checked to ensure they don't contain more than one entry
  for the same component.

* The archive path and export data files now don't need to exist until they are actually
  required. This should allow use of tools like envinfo when not connected to the network.

* Added license file for zip and unzip. Also removed the leading underscore from the
  executable file names so as to conform to the license.

* Added CleanLocalArch command which can be used to clear out old releases from a release archive.
  See documentation for details.

* Changed viewnotes -s so that the summary is ordered according the release time and date
  stored in the release's reldata file (previously it used the timestamp of the corresponding
  release archive directory).

* Added new command - 'latestver'. See documentation for details.

* Added new utility command - 'mbld'. See documentation for details.

* Upgraded to the latest version of IPRTOOL (//EPOC/main/sysint/tools/iprtool.pl@140492).

* ViewNotes is now tolerent to directories within a component's release archive not being releases.
  A warning is now issued rather than bailing out altogether.

* Added 'relToolsVer' tag to reldata.

* Changed '\\epoc32\\data\\emulator\\epoc.sys.ini' to '\\epoc32\\data\\emulator\\*.sys.ini'.

* Changed the interface to DiffRel - it'll now attempt to work out how to difference against
  the source in a development environment (rather than having to be giving the name of a
  directory against which to difference).

* Added 'reallyclean' flag to CleanEnv. Causes it to clean out files that are normally ignored
  from the point of view of unknown origin status (intermediate build files etc).

From James Gibbons:

* Added new command EnvMembership. To allow querying of baselines to see if a particular component
  component release is present.

-----------------------------------------------------------------------------------

Version 2.18
Made by Lee Luchford  28/01/2002

From Lee Luchford:

* Fix IO bug affecting Perl 5005 during FTP transfers. The FTP.pm module now
  quits the FTP connection whenever an error occurs instead of just aborting the
  failed command but keeping the connection open.

* Increase TIMEOUT value in Proxy.pm module

* Add -r option to export and import tools. The user can now force the use of FTP
  resume mode from the command line overriding the ftp_server_supports_resume
  value in the reltools.ini file

* Implemented an FTP get command with resume in FTP.pm

* Fix for PGP.pm. Check to see if error code defined before using in numerical
  comparisons

-----------------------------------------------------------------------------------

Version 2.17
Made by Lee Luchford 21/01/2002

From Lee Luchford:

* Added a fix for PGP version 7 in PGP.pm. Error codes have changed between 6 and 7
  so errors were not being handled correctly

* Changes to ExportRel, ExportEnv, ImportRel, ImportEnv and FTP.pm to handle case
  dependency of file names on the FTP server.
  Now when exporting, component names are all converted to lower case and the actual
  version number (ie with the correct case) is read from the releases reldata file
  The FTP module ignores case when checking to see if a file exists and selects the
  correct filename to download.

* Changed naming of the temporary files used during uploads to FTP sites.
  Now of the form lpdrt*****.tmp. Should make it more obvious that we can delete
  these files if they are left lying around on the server

------------------------------------------------------------------------------------

Version 2.16
Made by Joe Branton 10/01/2002

From Lee Luchford:

* Added support for FTP servers with firewalls (ie passive transfers) and servers that do not
  support reconnect and resume. Use the new keywords "pasv_transfer_mode" and
  "ftp_server_supports_resume" in the reltools.ini to activate these features

* RelTransfer::Export module modified. A failed log file send no longer reports that the actual
  release failed to export

* Removed FTP download with resume code. Not reliable at the moment.

From Joe Branton:

* PrepEnv and PrepRel now throw an error if a version already exists.

* BinInfo now handles file name arguments of any case.

* Fixed bug in EnvDb that caused duplicates to not be reported accurately when making
  a release (or scanning an environment using EnvInfo).

* Fixed bug in Utils::TidyFileName that cause UNC paths to get converted into absolute
  paths. This caused a "Path not found" error message when making a release to an archive
  specified using UNC paths. This is not a fatal error, but the release files do not get
  their read only attribute set.

* Testing importing/exporting against the Symbian FTP site showed that the file / directory
  existance checking routes weren't working for this server (though they worked fine
  against others). Changed the implementation, and tested again our normal test Linux box,
  the Symbian server and the Bayou server.

----------------------------------------------------------------------------------------

Version 2.15
Made by Joe Branton 20/12/2001

From Joe Branton:

* The reltools.ini keywords 'remote_username' and 'remote_password' are no longer mandatory
  for FTP access - if not provided, they are prompted for at runtime. This also applies to
  the keywords 'proxy_username' and 'proxy_password' for use with proxy FTP servers.

* Implemented 'hidden text' password entry ('*' characters are displayed rather than the
  actual text). This is used when the user is asked to enter encryption passphrases or
  FTP passwords.

* Fixed a bug in the NETDRIVE exporting code that caused exported files to appear in the root
  of the current drive rather than the network drive.

* Added minimal progress information to imports and exports when the verbosity level is zero.

* Imported files are now set to read only in the archive (corresponding to MakeEnv and MakeRel's
  behaviour).

----------------------------------------------------------------------------------------

Version 2.14
Made by Joe Branton 19/12/2001

From Lee Luchford:

* In FTP.pm comment out file size comparison check for successful uploads. Appears to
  cause problems on the Symbian FTP server

* FTP move command cannot overwrite existing files. RemoteSite::FTP.pm now deletes the remote file
  before a move is attempted

* Win32::File module function calls replaced with system "attrib ..." in Utils.pm since Win32::File
  fails in some situations

* glob replaced with readdir + small fix for filtering individual source files in
  MrpData.pm

From Joe Branton:

* Fixed Win2K only problem associated with finding 'evalid.bat' in the user's path. This
  cause ValidateRel/Env to fail on Win2K machines.

* DiffEnv now displays "Environments identical" rather than an empty table if there are
  no differences.

* Fixed another suspicious forward slash in file name when using GetSource.

* Fixed bug in ViewNotes that caused the summary feature (available via -s) to produce
  a summary page with broken links on IE 5.0 and Opera 6.0 (and possibly other browsers).
  The problem was that these browsers expect any files they are asked to render to have
  the extention .html. This is now the case.

* Fixed regression in mrp parser that allowed the binary.zip file to contain multiple files
  whose name only differs with regard to case.

----------------------------------------------------------------------------------------

Version 2.13
Made by Joe Branton 27/11/2001

From Joe Branton:

* Fixed a regression introduced by changing the behaviour of the tools to not lower
  the case of file names. Bug caused the tools to wrongly report files as having
  unkown origin.

----------------------------------------------------------------------------------------

Version 2.12
Made by Joe Branton 27/11/2001

From Lee Luchford:

* Added support for proxy FTP servers by adding RemoteSite::FTP::Proxy module
  If remote_site_type keyword in reltools.ini has value 'PROXY' then FTP access is
  via the proxy server and the keywords proxy, proxy_username and proxy_password must
  be defined in reltools.ini

* fix to handle FTP sites that have problems with back slashes in paths

* Some changes to FTP module code for improved reconnect and resume handling

* Added passive mode support to FTP module. Include pasv_transfer_mode keyword in reltools.ini.
  If keyword specified then connects to FTP site in passive mode.

* Ask for PGP passphrase in Import module constructor ie before any files are downloaded

From Joe Branton:

* Removed the file name case lowering behaviour of the tools. This behaviour broke certain
  regression tests that depended upon file and directory names being in upper case (as they are
  when the build tools create them).

* DiffEnv now displays the components in alphabetical order.

----------------------------------------------------------------------------------------

Version 2.11
Made by Joe Branton 19/11/2001

From Lee Luchford:

* ExportRel and ImportRel added support for exporting and importing multiple releases by passing
  a file containing a list of component names and version numbers

* ExportEnv and ImportEnv now check to see if all components in the environment are defined
  in the archive path file before attempting to export/import

* Various fixes for potential problems with FTP uploading/downloading in RemoteSite::FTP.pm

From Joe Branton:

* Added a new switch to EnvInfo (-ff). -f now displays a table of component name, version, and status.
  -ff displays a table of component name, version, internal version status and mrp name.

* Tidied up new line handling in EnvInfo when displaying progress dots and an error occurs.

* PrepRel now warns before removing an entry from the environment database.

* Fixed bug in PrepRel that caused entries to be removed if only the mrp name is specified.
  Now updates the mrp name instead.

* Changed PrepEnv interactive mode so that any change in an entries data is written to the database.
  Previously the version needed to be changed to prevoke a write.

* The check for binaries being released by more than one component is now done in EnvInfo
  as well as MakeEnv.

* Tidied up the output of EnvInfo, MakeEnv and CleanEnv.

* ViewNotes now supports previewing the release notes for components that are currently pending
  release.

* Put the "Release environment" section of the release notes into a table.

* Added a new command - ModNotes. This allows the release notes of an release that has already
  been made to be modified.

* Added a new command - BinInfo. This displays the name of the component that owns a particular
  binary file, the currently installed version and the file's current status.

* Added support for releasing test code. Mrp files now support a new keyword - 'testbinary' (and also
  -testbinary). The syntax for this is very similar to the original 'binary' keyword.

* Added support for displaying a summary of all releases to date of a particular component
  in ViewNotes.

* The ini file can now be in either \epoc32\relinfo for the directory the tools are installed
  in. \epoc32\relinfo is checked first. If not found there, but found in the tools dir then
  a warning is issued. To disable this warning use the new "no_ini_location_warning" keyword.

* check_ignore.txt is no more. The standard ignores that used to ship in this file have been moved
  into the body of the Perl scripts (IniData.pm to be precise). Project specific customisations
  can be added to reltools.ini using the "ignore_binary" keyword. See the Installation Guide for
  details.

----------------------------------------------------------------------------------------

Version 2.10
Made by Lee Luchford 02/11/2001

From Lee Luchford:

* Rewrite of Crypt modules. Broken up into a base module Crypt.pm and 2 modules Crypt::PGP.pm and
  Crypt::GPG.pm both of which implement an abstract interface defined in Crypt.pm

* Fixed decryption bug in Crypt::GPG.pm. Open2 was not killing off child processes, now uses open
  instead but dumps the output to a file which is then parsed for errors.

* Rewrite of RemoteSite modules. Broken up into a base module RemoteSite.pm and 2 modules RemoteSite::FTP.pm and
  RemoteSite::NetDrive.pm both of which implement an abstract interface defined in RemoteSite.pm

* RemoteSite::FTP now has support for reconnect and resume for downloads and uploads

* RemoteSite::FTP and RemoteSite::NetDrive both use temporary files during uploads and then rename the
  temporary file to the final release name. Therefore .log files are no longer needed to confirm that
  an upload was successful

* RelExporter and RelImporter replaced by a base module RelTransfer.pm and 2 modules RelTransfer::Export
  and RelTransfer::Import which inherit from the base module.

* pgp passphrase errors handled better in RelTransfer::Import. Keep asking for passphrase until
  correct

* ExportRel, ExportEnv and ImportRel now have a -f option which forces the export and import of
  releases even if they already exist

* reltools.ini and check_ignore.txt now assumed to be stored in \epoc32\relinfo instead of the
  release tools directory

* Changed pgp_path keyword in reltools.ini to pgp_config_path

* Changed pgp_users_keyid keyword to pgp_encrpytion_key in reltools.ini. Also this keyword can
  be used more than once to build up a list of default keys used for encryption

* Remote site type no longer determined by remote_host value in reltools.ini. Added remote_site_type
  keyword which should have the value FTP or NETDRIVE

* Added zero compression option to Utils::ZipList function

* Replace globs with readdir in RelTransfer modules and EnvDb.pm

From Joe Branton:

* Partially fixed bug to do with the way file modified times are stored in the environment
  database. The WIN32 Perl implementation returns file modified times taking into account
  daylight saving. Previously they were stored in this form in the environment database,
  which meant that when daylight saving changed, environments were reported as dirty. The
  fix attempts to undo the daylight saving accounting, and store the times in GMT.

  It is a partial fix, because testing has revealed that certain time zones (e.g. Cairo, GMT +2)
  cause unexpected hour shifts in some files. The reason for this is currently unknown (although
  some test code was written in C using the Windows stdlib, and this showed the same behaviour).

  NOTE, ANY EXISTING ENVIRONMENT DATABASES WILL HAVE THEIR TIMES IN THE WRONG FORMAT. This
  will manifest itself as the environment appearing completely dirty. To fix this, either run
  ValidateEnv, or re-run GetEnv. In most cases, this problem should not return. Because of the
  issue described above, users in some time zones may experience a recurrence of this problem
  when daylight saving changes. Also, users that change their time zone to one of the affected
  ones, may see this problem recur.

* Release notes source files are now checked for existance as well as whether they are
  actually a file (results in a more meaningful error message if the file does not exist).

* DiffRel now removes the drive letter if specified for the source path.

* PrepRel/Env now removes the drive letter if specified for the mrp file name.

----------------------------------------------------------------------------------------

Version 2.09
Made by Lee Luchford 17/10/2001

From Lee Luchford:

* Fixed critical bug in MrpData.pm. Iprtool parsing failed in some cases causing some source
  files to be missing from release

-----------------------------------------------------------------------------------------

Version 2.08
Made by Joe Branton 12/10/2001

From Lee Luchford:

* Fixed bug in RemoteSite::FTP. Sometimes a release was getting exported
  even though it already existed on the remote site. This problem occurs if the connection is
  dropped during the check for existence of a release on the remote site. Now attempts to reconnect
  several times if the connection is dropped, if this does not work then dies marking the export
  as failed

* Improved error handling for components mistakenly ommitted from the export table. Now throws an
  error if the component does not exist in the export table and the release does not exist on the
  remote site.

From Joe Branton:

* Added more status checking to GetEnv - now checks the status of components that will be removed
  and warns if their status is pending release (providing an oportunity to abort the GetEnv).

* Fixed a bug in PrepRel. If called with no version argument, the specified component is removed
  from the environment database. Previously, if a component name that did not exist was specified
  PrepRel would still report successful removal from the database. It now reports an error. It
  also removes that component's signature file as well as the database entry (i.e. fully cleans up).

* Tweaked the code in MrpData that interacts with the build tools to cope with the version shipped
  with Hurricane. The build tools now use GNU Make for most task (rather than Microsoft's NMake),
  and this reports errors in a different way. The old build tools should still be supported.

* Automatic calling of bldmake and generation of makefiles now only does one attempt of each (rather
  than getting stuck in an infinite loop if there is a problem).

* Add protection against makefiles that list files for release with double back slashes (e.g.
  "\epoc32\release\wins\udeb\\test.dll") since these cause problems for the zip. Double slash
  is replaced with a single slash.

* Added a check in GenMrp to ensure that the bld.inf file exists - dies cleanly if not.

* Fixed a bug in DiffEnv that caused components present in "environment 2" but not in "environment 1"
  to be wrongly assigned to "environment 1".

* Added "keep going" style error handling to PullEnv.

* Added "-l" switch to GenMrp to allow the source directory nesting level to be specified. This allows
  the tool to be used effectively with GT's new sub-system directory structure.

* Fixed bug that meant whitespace in the release tools installation directory name caused the
  tools to fail badly.

* Fixed "uninitialised variable" warning in the exporting commands that occurs when there is no
  pgp_path keyword in the reltools.ini.

----------------------------------------------------------------------------------------

Version 2.07
Made by Lee Luchford 19/9/2001

From Lee Luchford:

* Replaced CryptTool with Crypt::PGP and Crypt::GNUPG grouping
  together all modules with a common interface for encrypting and
  decrypting files into one directory
  Crypt::PGP uses NA command line PGP client (executable name pgp.exe)
  Crypt::GNUPG uses GNU Privacy guard PGP client (executable name gpg.exe)

* Changed FtpSite to RemoteSite::FTP and NetworkDrive to RemoteSite::LANShare
  grouping together all modules with a common interface for accessing
  a remote site into one directory

* Updated modules which are affected by above changes

* ExportRel replaced by RelExporter and ImportRel replaced by RelImporter

* All Export and Import related modules now use named argument lists in constructors

* Fix to Net::Config module to remove 'uninitialized value' warning when exporting/importing

* Fixed handling of PGP passphrases with blank spaces

* Added the ImportRel tool for importing single releases

* MrpData.pm now handles single source files listed in the mrp file.
  Runs IPRTool on the directory where the file is stored to get the
  category of the file.

* ExportData.pm now allows comment lines starting with #

* ExportData.pm now allows spaces in recipient names in column headers

* ExportData.pm returns empty anonymous array references instead
  of undef. Fixes potential dererencing a non array reference bugs

* RelExporter now checks to see if PGP keys listed in export data file exist on keyring
  before attempting to encrypt releases

* Crypt::PGP and Crypt::GNUPG include fixes for handling directory names with spaces

From Joe Branton:

* Fixed bug in GenMrp that caused an extra invalid binary statement to be printed.

* Fixed bug in EnvDb::InstallComponent that caused an invalid database entry to be
  written if the components reldata file fails to open.

* Changed EnvDb::CheckEnv so that warnings about "unknown origin" files are not displayed
  if there were any errors parsing mrp files. This was done because errors in mrp files
  are likely to cause many "unknown origin" as a knock on effect.

* Fixed bug in MakeRel.pm that causes releases to fail if they didn't contain any source
  or binaries (release directory not made correctly).

* Fixed bug in MakeRel.pm that caused an "Uninitialised value" warning to be displayed
  when no internal version was specified.

* Fixed bug in ViewNotes that cause the page displayed by the web browser to be invalid.
  The temporary file was getting deleted before the browser had had a chance to read it.
  ViewNotes now pauses until the user hits a key before deleting.

* Added FAQ section to documentation.

* Changed EnvDb::ValidateComp to pick up evalid from anywhere in the user's path, rather
  than only \epoc32\tools (mainly to make running the test code easier).

* Added an automated test suite for testing core (non-interactive) commands.

* Added 'keep going' error handling functionality to PrepEnv - total number of errors is
  listed at the end.

* Added check to PrepRel.pm to ensure that a valid mrp file name is specified.

* Fixed bugs in PushEnv/PullEnv that caused UNC paths to fail.

* Added better parameter checking to PushEnv and PullEnv.

* Fixed bug in EnvDb::CheckComp that caused an invalid db entry to be written if a check
  was attempted on a component that did not exists. This manifested itself in EnvInfo if
  you give the name of a non-existent component as a parameter.

------------------------------------------------------------------------------------------

Version 2.06
Made by Joe Branton 30/8/2001

From Joe Branton:

* Fixed (another) bug in GetEnv that cause getting an environment on a clean drive
  to fail (doh!).

------------------------------------------------------------------------------------------

Version 2.05
Made by Joe Branton 24/8/2001

From Lee Luchford:

* Added some additional information about setting up PGP to the Installation Guide.

From Joe Branton:

* Fixed a bug in GetEnv that caused environment upgrading to fail.

* Fixed a bug in CleanEnv that caused re-installation of dirty components to fail.

* Fixed some cosmetic problems relating to the 'dot' progress information when
  performing an environment scan.

* Added additional status output to ValidateEnv.

* Added additional feedback to PrepEnv and PrepRel.

* Added implementation of interactive mode to PrepEnv.

------------------------------------------------------------------------------------------

Version 2.04
Made by Joe Branton 20/8/2001

From Lee Luchford:

* Updated CPan Net module to latest release.

* Change to CryptTool to display less warnings.

* EnvDb.pm, ExportRel.pm and ImportRel.pm now use File::DosGlob as a workaround to glob
  bug in latest Perl release.

* Added a new ExportRel tool to export individual releases.

* Source filtering (with IPR tool) is now used by default. Therefore the source_filter
  keyword in reltools.ini is deprecated. A new keyword, ignore_source_filter_errors, maybe
  used to switch off displaying of source filter errors in release notes.


From Joe Branton:

* Added new tools CleanEnv, PullEnv and PushEnv (see documentation for details).

* Added progress dots to environment scanning code (when used with a verbosity of 0).

* Added 'keep going' type error handling to mrp file parsing during an environment scan.

* Added makefile generation functionality to GenMrp.

* Changed behaviour of GetEnv to work in phases. Phase 1 checks that each component in the
  requested environment is physically available. Phase 2 removes all old binaries. Phase 3
  installs all new binaries. This makes the process robust when binary files have moved from
  one component into another.

* Added -l option to MakeRel which causes lib files to be copied from the thumb release
  directory if they are not found in the armi release directory.

* Added progress info (via verbosity level 1) and exit info to PrepEnv.

* Fixed uninitialised variable bug in GetSource when an install path is not specified.

* Added extra progress info to GetSource and PrepEnv.

* Changed PrepEnv to have the same syntax as PrepRel - now uses '-m' to denote an mrp file name.