Version - 1.19.38
  * framecpp
    - Removed verbose debugging messages.

Version - 1.19.37
  * framecpp
    - Corrected stream based frame checksum only optimization (issue 2963).

Version - 1.19.36
  * Build
    - Corrected library reference in lib/framecpp/framecpp_common.pc.in

Version - 1.19.35
  * Build
    - Modified for GCC 4.8.x compilers

  * Documentation
    - Extended administration documentation.

  * framecpp
    - Corrected issue when using the FrameCPP MeoryBuffer class
      which prevented creation of frames smaller than the initial
      buffer used to buffer the stream.
    - Corrected error message created when detector information is not
      available for channels which have been selected as part of a
      createRDS request.

  * frameAPI
    - createRDSSet()
      + Added parameters for setting of the compression level and method
    - class RDSFrame
      + Added support to use regular expressions when initializing the
        list of channels.
      + Added support for suppressing the generation of the FrHistory
        element describing the RDS command used to generate the file.

  * userAPI
    - createRDS.py
      + Added support to query an active diskcache server.
      + Added option --directory-output-frames to specify location for
        generated frame files
      + Added option --directory-output-md5sum to specify location for
        md5sum values for the generated frame files
    - ldas_create_rds
      + Added support to query an active diskcache server.
      + Added option --directory-output-frames to specify location for
        generated frame files
      + Added option --directory-output-md5sum to specify location for
        md5sum values for the generated frame files

  * Documentation
    - Extended administration documentation.

Version - 1.19.34
  * Build
    - Allow static building of the framecpp distribution
      + Does not support language extensions via SWIG
      + Does not support C Interface
    - C++ 11 Conversion
      + Moved from auto_ptr to unique_ptr

  * diskcacheAPI
    - C++
      + Extended library to better support SWIG wrapping so clients can query a server.

    - Python
      + Modified typemaps for ServerInterface.

  * framecpp
     - Added framework to test new compression methods
     - Modified classes MemoryBuffer and DynamicMemoryBuffer to be
       templated classes to allow other buffer types to be used.
     - Modified MemoryBuffer and its derivatives to work with
       the C++ 2011 standard.

  * diskcache
     - Modified reading of binary data file to be complient
       with the C++ 2011 standard.

Version - 1.19.33
  * frameCPP
    - Python
      + Added docstrings for classes:
        o FrameH
        o FrAdcData
	o FrDetector
        o FrEvent
        o FrHistory
	o FrProcData
  	o FrSimData
	o FrTOC
        o FrVect

  * Build
    - Added additional .pc files to address linking issue as seen
      under MacPorts build.
    - Added dependency for target api/genericAPI/so/src/swigexceptionNS.lo
      to correct parallel builds.
    - Corrected frameCPPC test framecpp_sample_c

  * framecpp
    - Classes
      + FrameCPP::Common::DynamicMemoryBuffer
        @ cleared accumulated_buffer state to properly initialize buffer
          for sparc architecture.
    - framecpp_checksum
      * When doing only the file checksum, only the checksum is verified. This
        means there is no checking of the forty byte header for conformence or
        other sanity checks, only that the file checksum is either 0 (indicating
        that no checksum was calculated) or the calculated checksum is the same
        as the expected checksum.
      * Corrected support for --relax-eof-checksum option. The code now properly
        exits with a zero status when the value of the checksum is zero in the
	file or stream and this option has been specified.
    - framecpp_compressor
      * Corrected library called used to decompress frames upon reading allowing
        this application to fully support "--compression-mode raw".

  * diskcache
    - Added options to the daemon sub command
      + --output-ascii <filename> - file name for storing the acii representation
        of the in memory cache.
      + --output-binary <filename> - file name for storing the binary representation
        of the in memory cache.
      + --version-ascii <version number> - version of the ascii output representation
        to be used.
      + --version-binary <version number> - version of the binary output representation
        to be used.
    - Added ExcludedDirectories to diskcache code.

Version - 1.19.32
  * frameCPP
    - Corrected the CRC slice-by-8 optimization routine (ticket 2957).

Version - 1.19.31
  * Build
    - Added endian detection for MacPorts (ticket 2955).
    - Added the script diskcache_poller to the distribution (ticket 2956).

Version - 1.19.30
  * Build
    - Addressed parallel build issue (ticket #2950)

  * frameCPP
    - Significant performance increase to CRC calculations by
      implementing slice by 8 algorithm (ticket 2953) 

  * diskcacheAPI
    - Added example of a shell script to poll file system
      for updates (ticket #2951).
    - Client/Server
      * Added Socket Suupport (#2941)
      * Added communication protocol for dump subcommand when
        in client/server via socket mode.
      * Added communication protocol for filenames subcommand when
        in client/server via socket mode.
      * Added communication protocol for filenames_rds subcommand when
        in client/server via socket mode.
      * Added communication protocol for intervals subcommand when
        in client/server via socket mode.
    - diskcache
      * Enhanced support for multiple file extensions (ticket 2942)

Version - 1.19.29
  * Build
    - Updated build for clang/clang++ 4.2

Version - 1.19.28
  * Build
    - Corrected pkg-config library value for framecppc. (ticket 2948)
    - Added -Wunused-private-field (ticket 2949)
    - Several OSX clang and clang++ have been corrected.
 
  * frameCPP
    - General
      + Added support of mime types in FrVect structures for version 8
        frame files. (ticket 2944)

  * general
    - Improved performance of General::cmp_nocase().

Version - 1.19.27
  * Build
    - General
      + Corrected detection of python-config to favor use of version
	specific varient over "default" python-config
      + Did cleanup of make clean (ticket 2939)
    - RPM corrections
      + ldas-tools-framecppc now obsoletes ldas-tools-framec
      + ldas-tools-framecppc-devel now obsoletes ldas-tools-framec-devel
      + Removed ldas-tools-framecppc elements that were in
        ldas-tools-framecpp
      + Removed ldas-tools-framecppc-devel elements that were in
        ldas-tools-framecpp-devel
    - Debian packaging
      + Applied patches to the debian subdirectory
      + Modified to work with Wheezy

  * frameCPP
    - C++ Interface
      + Added DynamicMemoryBuffer class
      + Added Scanner class which maintains state information regarding
        a stream.
    - Python
      + Added get/set methods to FrProcData::auxParam allowing users
        to read and write values for the auxiliary parameters
	available with the FrProcData class.

  * diskcacheAPI
    - Implemented leaf optimization (ticket 2646)
      + This comes with the caviet that symbolic links are not
        detected if they exist in the leaf node.
      + Performance enhancement is most seen when there are
        many non-chached files at the leaf node since no
	stat operation is performed on such files.

Version - 1.19.26
  * Build
    - Standardized on the name test for directories containing unit
      tests (#2931).
    - Modified depricated use of INCLUDES to AM_CPPFLAGS within Makefile.am
      files.
    - Modified to address warning message produced by autoconf (#2932)
    - Introduced the use of AC_CONFIG_MACRO_DIR to suppress libtoolize's
      suggestion (#2933).
    - Corrected dependencies in api/genericAPI/so/Makefile.am to allow
      parallel builds (#2934);

  * frameCPP
    - General
      + Resolved issue when reading older frame files which resulted in
        data loss (#2938).
    - C++ Interface
      + Reworked FrAdcData class back to Version 3 resulting in less
        duplicated code.
      + Added FrameStreamPlan to optimize reading of frame files with
        large number of FrAdcData channels (#2940).
    - C Interface
      + Extended FrameCFrChanQuery to support FR_CHAN_FIELD_TIME_OFFSET (#2916)
      + Extended FrameCFrChanQuery to support FR_CHAN_FIELD_COMMENT
      + Made FrameCFrChanVectorQuery robust against channels with no data
        vectors.
      + Changed library name to framecppc to avoid collision with Solaris library.
      + Added FrameCFileCksumValid to validate entire stream (#2915).

  * diskcacheAPI
    - Documentation
      + Modified installation instructions for MacPorts


  * disk cache
    - SWIG Interface - Python
      + Added embedded documentation for diskcache routines
    - API
      + Corrected error in scanning directories which led to corrupted cache files (#2935)

Version - 1.19.25
  * Build
    - Added filters to ldas-tools
    - Added frameAPI to ldas-tools
    - Added LT_INIT to appropriate configure.ac files
    - Modified configuration process so that when --without-ospace is specified,
      checking of ospace/config2.h is now disabled.
    - Replaced searching for specific TCL programs with the LDAS_PACKAGE_TCL macro
      so as to disable checking if tcl is disabled.
    - Modify installation of user-env scripts to use $(sysconfdir) instead of
      $(prefix)/etc
    - Removed unnecessary calls to establishing csh, tcsh and perl.
    - Allow for disabling of perl. When perl is disabled, targets that depend on its
      existence are not built.
    - Eliminated nearly all explicite uses of $(prefix)
    - Corrected checking for Python's ctypes package.
    - Correction for many installation directories.
    - Building of RPMs now supports %{_smp_flags} which allows for parallel builds.
    - Allow for disabling of latex check via configuration option --disable-latex.
    - Allow for disabling of LDAS specific documentation via configuration option
      --disable-ldas-documentation.

  * general library
    - Added GPSTime::GPSNanoseconds( ) - This addresses the request to
      have a method that returns the GPS time as the number of nanoseconds
      since the start of GPS time.

  * frameCPP
    - Exposed FrameLibraryName() call at a lower level for use by gstreamer
    - Corrected error in verifying checksum on non-version 8 frames that
      yielded false negatives.

  * frameC
    - Added void to functions that have no parameters
    - Added FrameCFileCksumValid()

Version - 1.19.24
  * frameCPP
    - Corrected segfault reported by CDS group.
    - Integrated test program supplied by CDS which showed a segfault
      they were noticing.

Version - 1.19.23
  * frameCPP
    - Added additional test for double free issue reported by CDS

Version - 1.19.22
  * lib/framecpp
    - framecpp_checksums has been renamed to framecpp_checksum
    - Corrected double free
    - Modified SixtyKTest to verify double free correction.
    - Unified error reporting format for framecpp_verify and
      framecpp_checksum

  * lib/general
    - Updated leap second table for July 1st 2012

  * datacondAPI
    - Finished port to support use of Atlas's version of
      CBLAS and CLAPACK.

Version - 1.19.21
  * FrameCPP
    - Significantly increased the writing performance.
    - Added back the SixtyKTest to make check
    - Utilities
      + renamed framecpp_verify_checksums to framecpp_checksums
      + framecpp_checksums
        o Changed default to only do file checksum
        o Removed --checksum-file-only option
      + Modified the following commands to print a usage message if there
        are any unrecognized options.
	o framecpp_checksums
	o framecpp_compressor
	o framecpp_dump_channel
	o framecpp_dump_objects
	o framecpp_dump_toc
	o framecpp_query
	o framecpp_sample
	o framecpp_verify

Version - 1.19.20
  * lib/general
    - Fixed configuration tests to work with Atlas systems.

  * FrameCPP
    - Added testing of the first 40 characters to the file opening code
      to prevent mis-use of byte swapping leading to excessive memory
      usage. (Merged from 1.19.16a)

Version - 1.19.19
  * FrameCPP
    - C++ Interface
      + Fixed all of the checksum issues discovered as part of ER1
	preperation.

Version - 1.19.18
  * FrameCPP
    - C++ Interface
      + Corrected issue where the per structure checksums were
        not being checked for version 8 frames.

Version - 1.19.17
  * FrameCPP
    - C++ Interface
      + Added FrHeader::GetFrameLibraryName( ) to get the ascii name of the
        frame library which created the input stream.
      + Added IFrameStream::GetFrameLibraryName( ) to get the ascii name of the
        frame library which created the input stream.
    - C Interface
      + Added FrameCFrameHWriteCompressed() to allow writing of compressed
        frames.
      + Added FrameCFrameLibraryName( ) to get the ascii name of the
        frame library which created the input stream.
    - Python Interface
      + Added optional parameters to FrameH::Write( ) to allow writing of
        compressed frames. The default values reflect the previous workings
        of the method.
      + Added IFrameFStream::GetFrameLibraryName( ) to get the ascii name of the
        frame library which created the input stream.
  * Build
    - Addressed issue which resulted in duplicate warning flags
    - Ported the code to Xcode's clang and clang++ compilers for OSX Lion
    - Addressed several compilation issues compiling diskcache for Atlas 

Version - 1.19.16
  * Operating System Modifications
    - Modifications to properly compile under Lion
    - Modifications to enhance SL 6.1 portability of all LDAS
  * FrameCPP
    - ReadNextFrame( ) with no Table of Contents now properly throws
      out_of_range error.

Version - 1.19.15
  * FrameCPP - General
    - Corrected reading of older frame files
    - Added ability to read frames sequentially without requiring
      the presence of a table of contents.
    - IFrameStream::Version( ) now returns the frame specification of
      the input object instead of the version to which the object is
      being cast.
    - Added routine to return the current frame offset.
    - Installed latest debian rules

Version - 1.19.14
  * FrameCPP - C++
    - Removed unused files:
      + lib/framecpp/src/Version6/Dictionary.hh
      + lib/framecpp/src/Version6/Dictionary.cc

  * FrameCPP - Python Interface
    - FrAdcData
      + Extended to set
	o channelGroup
	o channelNumber
	o dataValid
	o comment
	o sampleRate
	o timeOffset
    - FrProcData
      + Extended to set
        o comment
	o timeOffset
    - FrTOC
      + GetProc( ) now returns a list of channel names.

  * FrameCPP - C Interface
    - FrAdcData
      + Extended FrameCFrChanQuery with:
	o FR_CHAN_FIELD_CHANNEL_GROUP
	o FR_CHAN_FIELD_CHANNEL_NUMBER
      + Extended FrameCFrChanSet with:
	o FR_CHAN_FIELD_COMMENT
	o FR_CHAN_FIELD_DATA_VALID
	o FR_CHAN_FIELD_CHANNEL_GROUP
	o FR_CHAN_FIELD_CHANNEL_NUMBER
    - FrProcData
      + Extended FrameCFrChanSet with:
	o FR_CHAN_FIELD_COMMENT
    - Modified sample program framecpp_sample_c.c
      + Correction to FrameCFrChanVectorSet
	to be properly terminate with FR_VECT_FIELD_LAST


  * Misc
    - Changed DOT_IMAGE_FORMAT from 'gif' to 'png'
    - Removed verbose debugging messages from Python
      interface and test programs.
    - Removed SWIG warnings generated by inclusion of
      + Dimension.hh
      + FrDetector.hh
      + FrEvent.hh
      + FrHistory.hh
      + FrProcData.hh
      + FrSimData.hh
      + FrTOCData.hh
      + FrTOCProcData.hh
      + FrVect.hh
    - Expanded GCC warning flags to include
      + -Wextra
      + -Wno-missing-field-initializers
      + -Wno-unused-parameter
      + -Wignored-qualifiers (C++ Only)
    - Added debian packaging rules

Version 1.19.13
  * FrameCPP - Python
    - FrAdcData
      + Added read only data element 'data'
      + 'data' is an iterable
    - FrProcData
      + Added read only data element 'data'
      + 'data' is an iterable
    - Modified test_frameCPP.py
      + Test using new iterables
      + Modified to have FrProcData and FrAdcData elements
        to go out of scope before using the FrVect information.
    - Started to experiment with adding docstring documentation

  * FrameCPP - C Interface
    - Removed verbose debugging from FrChan.cc
    - Aded creation of vector data to FrameCFrChanAlloc and
      FrameCFrProcChanAlloc

  * Misc
    - Removed lib/framecpp/src/adcdata.hh
      
Version 1.19.12
  * framecpp_dump_objects gives non-zero exit status when
    processing a non-frame file.
  * Added routines to return the library used to generate
    the frame file.
  * Added routines to return the library release number.

Version 1.19.11
  * Disk Cache
    - Integration of HotDirectory

Version 1.19.10
  * Python
    - Correct dtype for FR_VECT_2S
    - Modified to use smart pointers so FrVect structures
      can be used even when the meta data portion goes
      out of scope.

Version 1.19.9
  * Modified framecpp_dump_objects to verify the FrHeader and
    exit with a non-zero exit status upon failure (PR#3439).
  * Modified frameCPP to use smart pointers.
 
Version 1.19.8
  * Correction of several build issues

Version 1.19.7
  * Integration of NumPy into frameCPP

Version 1.19.5
  * Modified use of '$self' to be 'self' to enhance SWIG portability
  * Modified lib/frameCPP/src/OOInterface/Makefile.am to handle
    parallel builds.
  * Added the ability to create and populate FrHistory structures
    for both the C and Python interface. These structures can also
    be appended to a FrameH structure. The sample programs have
    been updated to show the new functionality.
  * Added the ability to add detector information to the FrameH
    structure for both the C and Python interfaces.
  * Added a routine to obtain static data describing detectors
    that are considered fixed.
  * Added retrieval of unixX element of the Dimension structure
    for the Python interface.
  * Prevent leaking of C++ exceptions into the Python by wrapping
    Python interface via SWIG exception macro.
  * Added accessors for GTimeS and GTimeN of the FrTOC structure
    for Python.

Version 1.19.4
  * Corrected calculation of file checksum for Version 4 frames.
  * Add support for adding channels to FrameH structures to the
    C interface to FrameCPP.
  * Removed the FrSerData from FrameCFrChannel and replaced with the
    proper type FrEvent.
  * Reenabled frame checksumming
  * Added --checksum-file-only option to framecpp_verify
  * Added opening of output frame to Python interface for frameCPP
  * Added support for running runLDAS and kill-ldas under Solaris'
    Service Management Facility
  * Added creation and writing of FrAdcData, FrProcData, and FrSimData
    to both the C and Python interfaces.

Version 1.16.0
  This version focused on improvements to the diskcacheAPI. The memory
  footprint has been reduced and the stability has been greatly improved.

  * frameCPP
    - Added unit test to verify that second trend files can be created in
      real time (PR# 3356).
  * diskcacheAPI
    - Corrected several issues related to the ASCII dump format
      (PR#3380, PR#3381).
    - Did a major rewrite of the core library to remove classes that are
      no longer being used.
    - Prevent the diskcacheAPI from rebuilding the cache from scratch
      when a binary version exists on disk (PR#3383).
    - Reenable StatVFS (PR#3355,PR#3341).
  * Others
    - Mail recipients needs to be part of mail icon for log messages
      (PR# 3377).
    - ligolw_dtd.txt needs to be installed (PR#3378).
    - create ldas-tools rpm(PR#3385)
 
Version 1.14.1
  This is a maintenance release to address some critical issues for E14
  * Corrected the inclusion of framecpp/config.h in DetectorNames.hh
  * Added installation of ligolw_dtd.txt and ligo_lw.dtd
  * Removed the extra value from the ASCII dump of the disk cache

Version 1.14.0
  * Fixed framecpp_dump_objects to handle zero length files (PR# 3363).
  * Logging has been moved from the TCL layer to the C++ layer (PR# 572).
  * Scanning of mount table in frameAPI initialization
    happens in parallel (PR# 3365).
  * FrameAPI startup needs to be robust against down NFS servers (PR# 3366).
