ROOT Version v5-22-00 Patch Release Notes
A new production version ROOT v5-22-00j has been released Mar 31, 2010.
Binary tar balls are not available for patch releases.
The AFS version of v5-22-00i for many different platforms and compilers can be found at:
/afs/cern.ch/sw/lcg/app/releases/ROOT/5.22.00j/ 
The complete source tree for all systems (23.5 MB) is available here:
 ftp://root.cern/root/root_v5.22.00j.source.tar.gz 
Alternatively get the source from Subversion (broken) using:
 svn co http://root.cern/svn/root/tags/v5-22-00j root 
After obtaining the source read the file README/INSTALL (broken) (in short just do: cd root; ./configure; make).
To get the source of the head of the v5-22-00-patches branch do:
 svn co http://root.cern/svn/root/branches/v5-22-00-patches root 
Changes in the head of the v5-22-00-patches branch
- IO
	
- Added support for reading file written by 5.27/02 and containing a data member like:
		
std::container *fDataObjects; which has been streamed member-wise (see revision r33173 of the trunk). - Prevent the use of an optimized StreamerInfo when reading a collection streamed member wise. The solves the issue 73642 reported in Atlas' Savannah.
 - Avoid spurious warning message when reading file with a TTree written with ROOT 5.29/03 or later:
Warning in <tstreamerinfo::compile>: Counter fNClusterRange should not be skipped from class TTree</tstreamerinfo::compile> 
 - Added support for reading file written by 5.27/02 and containing a data member like:
		
 - Xrootd
	
- Import fixes #33677 fixing a fake authentication failure with proxies created by voms-proxy-init when the input certificates are PKCS12-formatted
 
 - CINT
	
- Prevent buffer overrun due to long include directives (issue #68546, r33793).
 
 
Changes in version v5-22-00j (Apr 23, 2010)
- Core
	
- Prevent object related to TClass and CINT from being allocated inside a TMapFile.
 - Support cross-compilation of 32-bit binaries on MacOS X 64-bit.
 
 
Changes in version v5-22-00i (Mar 31, 2010)
- Xrootd
 - Meta
	
- Add dictionary for 
vector<pair<int,int> >used inTSchemaRule(r32475, bug #53130). 
 - Add dictionary for 
 - I/O
	
- Avoid spurious warning message when reading file produced by ROOT v5.27 and above.
 
 
Changes in version v5-22-00h (Feb 8, 2010)
- Xrootd
	
- New version (v20100205-0000) containing several fixes needed in particular by ATLAS; this includes the new SSL module for authentication needed by Castor.
 - Import crucial fix #32322 on for the krb5 security module
 
 - Krb5auth
 - Netx
	
- Import the relevant parts of patch #30949 adding the possibility to set on the fly (via the option field of the URL) the new read-ahead policies explicitly introduced in XrdClient for ATLAS.
 
 - I/O
	
- Fix in TXNetFile, TRFIOFile and TDCacheFile for accessing members in a zip archive [Bad link].
 - Add support reading TWebFiles via a web proxy.
 
 
Changes in version v5-22-00g (Jan 22, 2010)
- Core
	
- makelib.sh: when using the --enable-explicitlink option make sure all ROOT libs are fully linked. In most cases -ld was missing. This fixes issue [Bad link].
 - Fix in rootcint when using the -p option ([Bad link]).
 
 - CINT
	
- Fix deprecation warnings for Python 2.6 (r32033, issue #61490)
 - Work around warning "cast from pointer-to-function and pointer to object" in some Reflex dictionaries. (r32074 r32090, bug #61758)
 
 - I/O
	
- TDCacheFile: fix regression which caused dcap://host:port/path to fail.
 
 
Changes in version v5-22-00f (Dec 7, 2009)
- Core
	
- On MacOS X determine correct ROOTSYS in case libCore.so is a symlink (as was already done on Linux systems).
 
 - I/O
	
- TDCacheFile: dCap client does not ignore ?filetype=raw and other options, so remove it. Fixes issue #57409.
 - TDCacheFile: increase readahead size from 8k to 128k and make it settable via DCACHE_RA_BUFFER env var.
 - Make vector<long> and vector<long long> equivalent (and hence suppress: TStreamerInfo::BuildOld:0: RuntimeWarning: Cannot convert DataHeaderElement_p2::m_Hashes from type:vector<unsigned long long> to type:vector<unsigned long>, skip element )
 - Fix the reading of the TFile title in the header for file produced with v3 or older and for file larger than 2G
 - Saves about 20% CPU time for I/O with Atlas AODs by not injecting the Streamer() trampolines in Cintex
 
 - TTree
	
- Fix the FastCloner re-ordering of basket per entry when the baskets are synchronized across branches (this happens after a good OptimizeBasket of the tree).
 
 - PyROOT
	
- Fix for issue [Bad link] and [Bad link].
 
 - Reflex
	
- Allow softlinks when locating genreflex.py (r31534 r31543 r31556 r31563, issue #59896)
 
 
Changes in version v5-22-00e (Oct 11, 2009)
- MacOS X Snow Leopard
	
- Support for 32-bit build on 64-bit Snow Leopard.
 
 - TTree
	
- Repair nesting of 'named' TTreeFormula (issue #53994).
 
 - Core
	
- In TUnixSystem and TWinNTSystem, change the dynamic library search order. First look into LD_LIBRARY_PATH (or PATH on Windows) and then in what is specified in Root.DynamicPath. This allows by changing LD_LIBRARY_PATH to search for alternative versions of plugins without changing the rootrc file(s).
 - Fix in root-config a problem with relative symbolic links.
 
 
Changes in version v5-22-00d (July 27, 2009)
- MySQL
	
- Fix portability problem between 32 and 64 bit as long is not a portable type.
 
 - Core
	
- Fix tab completion for the case
		
root [0] .x tutorials/ [TAB]
 - Add support for skipping the reading of the $HOME/<name> (e.g. $HOME/.rootrc) resource file. To do this set the shell variable ROOTENV_NO_HOME. This might be useful in case the home directory resides on an automounted remote file system and one wants to avoid this file system from being mounted. Fix for issue [Bad link].
 
 - Fix tab completion for the case
		
 - CINT
	
- Speed up the dictionary initialization: nlogn instead of n^2. (r29297, issue #52457).
 - Fix the implementation of ShowMembers in the case where the members of a class with a genreflex dictionary are of type with a rootcint dictionary and no genreflex dictionary.
 
 - TTree
	
- Insure that the TTreeCloner (fast merging) is able to also copy 'uninitialized' TStreamerInfo describing abstract classes (This fixed savannah report #52856)
 - Enhance support for reading class (A) stored in a vector where one the member is no longer part of the current class layout (of class A) and the member is a class type .
 
 - I/O
	
- Fix the initialization of the checksum information for a TSchemaRule (hence fixing the lookup based on checksum)
 
 - PyROOT
	
- Fix for issue [Bad link].
 
 
Changes in version v5-22-00c (June 27, 2009)
- CINT
	
- Only use workaround against Microsoft compiler bug ('unused' returned reference for forward declared classes, see v5-22-00b) on Windows; silences (correct) warnings on other platforms (r28683).
 - Typedefs that are defined in a scope that is not part of the dictionary will not get an entry in the rootmap file, (r29026, issue #51846).
 
 - TTree
	
- Several fixes to properly support "flushing the write basket before streaming the branch".
 
 - PyROOT
	
- Fix a crash while loading 'std::set
'. This fixes issue #49779.  
 - Fix a crash while loading 'std::set
 - rootcint
	
- Correct algorithm to find ROOTSYS, now it works also if rootcint is a symlink.
 
 
Changes in version v5-22-00b (May 14, 2009)
- Base
	
- In GetOptions() fix parsing of script names with + somewhere in path.
 - Roll back mod made in r25519 which was not a good idea as it required the user to make two gStyle->Set... statements to get a white canvas.
 
 - I/O
	
- Prevent a potential infinite loop when reading the StreamerInfos.
 
 - TTree
	
- Improve performance of read back of sub-branches contains stl container of simple types
 - Prevent an infinite loop when reading a file containing a class which is split and has a vector member that has been removed in the current class layout.
 - Enhance support for reading class (A) stored in a vector where one the member is no longer part of the current class layout (of class A)
 
 - Meta
	
- Support the case where loading the library needed for an autoload entry does not lead to the loading of a CINT dictionary; This happens if the library has a Reflex dictionary and Cintex is not enabled.
 - In TClass::Clone, insure that the copy is using the same 'dictionary' as the original so that it is really setting up an alias.
 - Insure the autoloader is properly enabled when it is needed (for example after an explicit call to TSystem::Load even without a TApplication object).
 
 - Cint
	
- Insure that the creation and deletion of object in Cintex matches the way object are created and delete by the compiler.
 - Fix a silent corruption of the I/O system that can be triggered by a call to UpdateMembers() before Cintex got invoked. (r28049, issue #48338)
 - Call TypeBase::Deallocate() instead of ::op delete in Reflex::Class::Destruct(), and only if requested. (r28086, issue #47076)
 - Allow transient declarations even for typedef-to-class. (r28335 + r28374, issue #49472)
 - Fix invalid memory access in ~ScopeBase() after UpdateMembers(). (r28337, issue #49533)
 - Silence warnings when compiling Reflex dictionaries with -pedantic (r28394, issue #49792)
 - Do not try to automatically create a dictionary for template classes that were loaded via CINTEX (r28415, issue 49926)
 - Work around a silly error generated by the Microsoft compiler when seeing an 'unused' returned reference to a forward declared class.
 
 - Graf
	
- Fix in PaintAxis: the option "U", for unlabeled axis, was not implemented in case of alphanumeric axis' labels.
 
 - Hist
	
- Fix bad side effect introduced in revision 28200 in TGraph::GetHistogram().
 
 - Geom
	
- Fixed issue with un-initialized variable in TGeoScaledShape::DistFromInside(). This fixes issue [Bad link].
 
 - MathCore
	
- Fix bug [Bad link] in fitting TGraphErrors
 - Fix a problem in likelihood fit caused by negative pdf values
 - Fix a bug in creating the Integrator class when MathMore is not built.
 
 - SMatrix
	
- Remove tolerance check when inverting matrices (both with BK or LU methods)
 
 - Xrootd
	
- Import fixes in the security modules
 
 - Proof
	
- Fix problem with handling entry lists
 - Fix problem with retrieving files from the cache
 - Fix problem with schema evolution
 - Fix problem causing random crashes when asking for the memory plot
 
 
Changes in version v5-22-00a (Feb 12, 2009)
- Misc
	
- Add support for Microsoft Visual C++ version 9.0
 
 - Base
	
- Fix issue [Bad link], crash caused by PATH being larger than 8192 characters.
 - Fix issue [Bad link], determination of ROOTSYS broken when libCore is in a symlinked path.
 - Fix root-config, determination of ROOTSYS broken when root-config is in a symlinked path.
 - Fix issue in TFolder::ls() not handling wildcards properly.
 
 - Meta
	
- Implement TClass::Clone (It replaces the copy constructor which was removed)
 - Suppress error message in TClass::BuildRealData if the class is used 'only' for a transient member.
 - Implement new mode 1<<7 for TClassEdit::ShortType() to strip off default template parameters.
 - Fix issue [Bad link], genreflex failing for functions taking multidimensional arrays.
 - Prevent a segmentation fault and reintroduce the proper warning message when a file contains an empty collection of long double.
 
 - TTree
	
- Force the TStreamerInfo used by a split branch to be non-optimized.
 - Fix the logic when trying to match the branch from one tree to the other (avoid an infinite loop if the first branch is missing in the new tree).
 
 - PyROOT
	
- Fix for issue [Bad link].
 - Windows: Create the Python module libPyROOT.pyd from libPyROOT.lib instead of copying it from libPyROOT.dll. This solves a problem in GaudiPython.
 
 - CINT / Reflex
	
- Fix issue [Bad link], genreflex failing for functions taking multidimensional arrays. (r27214)
 - Don't cache Reflex::Members. Repairs Cintex for classes with duplicate dictionaries. (r27303)
 - genreflex: prepend return type of shadows' final overriders by '::' where applicable; fixes issue [Bad link]. Also keep constness of original return type. (r27305)
 - Correct CINT's handling of unsigned numbers larger than INT_MAX. (r27306)
 - When looking up list<A>::iterator, list<A> was looked up only as a struct, where in fact (for CINT) it's a typedef. This prevents template instantiation (which fails during library load) and autoloading in the case of rootmap (re-) registration for types like list<A>::iterator. (r27310)
 - Reflex::Type::SizeOf() was giving the wrong answer if the underlying type was not yet initialized when the derived type (e.g. array, typedef) was built; see issue [Bad link]. (r27325)
 - Remove stray spaces in genreflex-created rootmap files for types containing (basic_)string as template argument. (r27408)
 - Insert basic_string<char> through Cintex for backward compatibility reasons. (r27408)
 - Rename unsigned int template arguments as provided by GCCXML to not end on "ul", fixing issue reported by Atlas with boost::array. (r27408)
 
 - Fitting (MathCore + Hist)
	
- Fix issue [Bad link] for normalization of error resulting from fitting a TGraph
 - Fix a problem in Chi2 calculation in case of overflow
 - Fix issue [Bad link] when setting a function range outside histogram range
 - Fix issue [Bad link] for creating a list of functions when using TGraph default constructor
 - Fix issue [Bad link] for avoiding crashes when a linear fit fails.
 
 - TAlienFile / xrootd
	
- Fix issue [Bad link] TAlienFile size being recorded as size 0.
 - Fix issue [Bad link] concerning TFile::Cp() of AliEn files.
 
 - XrdProofd
	
- Fix a free/delete mismatch possibly causing a segv when restarting the daemon
 - Fix a backward-incompatibility issue causing the error message "unknown action code: 5112"
 
 - Xrootd, import of fixes from the CVS head:
	
- for possible crashes of the daemon after a 'prepare'.
 - improving the server hostname check in GSI authentication.
 
 - Hist
	
- Fix issue [Bad link] in TH3::Project3D for the error calculation in case of weighted histogram (or when using option "E") and no axis range is set.