Antelope Version 4.10 Release

May 2008

4.10 is still compiled as 32 bit, though considerable progress has
been made towards a 64 bit version.  You will see this primarily in
many prototypes that have changed to use long instead of int. This
has no effect in the 32 bit version (since longs and ints are
the same size) but allows a much larger range in the 64 bit world. 

The current release is compiled on the following architectures:

Solaris		Solaris 10	
Linux		SuSE Linux 9.3 (i586)
Macintosh	Mac OS X 10.4.11 (Tiger)

We had intended to move to a later SUSE release and a later Macintosh
release.  However, we ran into problems creating a 32 bit release on
OpenSUSE 10.3, and problems getting perl/tk to compile on Macintosh
Leopard.  The release should still function on these versions,
however.

Similarly, there are various difficulties getting the MatLab extensions
to compile. The latest Solaris Matlab evidently has only a 64 bit version.
For this release, you may have to compile it yourself.

This release includes a new program, dbcalibrate, that computes
spectral ratios between two waveforms and can be used to produce
sensor calibration response functions when using dataloggers, like 
the Q330, that can be configured to record directly the calibrator 
DAC output simultaneously with the sensor calibration output. This
program can also be used to compare calibration waveforms across
two different times for the same channel to look for any changes
that may indicate sensor problems.

The Brttplot graphics widgets that were originally added as tcl/tk
extensions have now been ported to perltk (see bplot(3p)). Generally,
the functionality is similar to the tcl/tk version but some new
features have been added. It is our intention to deprecate the
tcl/tk version of Brttplot and put all of our future efforts
into expanding the perltk version. As part of the port to perltk,
several new functions were added to libbrttutil including a
generalized vector function, buvector(3), a generized history
function, buhistory(3), and perl extensions were added for these
functions (vectory(3p) and history(3p)).

A new program, orbaddcalib, is in this release that can be used
to insert the calib, calper and segtype values into ORB waveform
packet headers. This allows operators to decouple the database
access usually required to obtain these parameters from intensive
data acquisition tasks, like q3302orb when acquiring a large number
of stations (e.g. USArray/Transportable Array).

The rtbackup script has been completely rewritten so that backups
are now done to other disk systems instead of to tape drives. The
original tape based script has been renamed rtbackup2tape. With
the advent of large and cheap NAS disk systems, tape based backup
has become less attractive. Tape media do not have particularly long
shelf lives, are expensive and have small capacities compared to 
disk based systems. Because of the inconvenience of restoring from
tape based systems, archiving data to tape usually means that the
vast majority of the data will never be restored or used again. 
Archiving data to NAS disk allows immediate access to all of the 
archive data with no need to go through the restoration process.
It is our intention to deprecate rtbackup2tape. We leave it in 
this release to preserve compatability with users who are already
using tape archive, but we will not be developing rtbackup2tape
further. We strongly advise all users to consider switching to
disk based systems for archiving and backup purposes.

A new program, orbproxy, has been added that provides general
orbserver proxy functionality. This was developed mainly to provide
orbserver proxies for Marmot based data concentrators, but it can
be used on other systems as well.

Changes which require configuration changes (incompatibilities with 4.9)

    libbrttutil is now dependent on libtr, libds, libcoords, and libm.
    This means that some Makefiles need to specify $(TRLIBS) instead
    of $(STOCKLIBS) after -lbrttutil.

Programs Removed:
    add_staname     b3s2orb         cluster         
    cluster_cleanup dbcheckseed     dbresample      
    dbsteimu        dsteim          editgclgrid     
    ipd2            makegclgrid     mktt            
    remodl          rt2orb          setbrn          
    taup2locsat     ucsdsp2db       ucsdwf2db       

Programs Added:
    64bit            certify          
    dbcalibrate      displayscal 
    heartbeat2db     mkdlsensor
    nscl             orbaddcalib      
    orblag           orbperformance   
    orbproxy         tkorblag         
    rtbackup2tape

Contrib programs added:
    arf 	    David von Seggern
    check_license_expiration   foley
    db2ims	    Jennifer Eakins
    db2ph	    Frank Vernon
    dblocgrad       Frank Vernon
    dbpick_combine  Jennifer Eakins
    dbresp	    Frank Vernon
    dbresp1f	    Frank Vernon
    dbs2n	    Frank Vernon
    delay	    Gary Pavlis
    deployment2vnd  Jennifer Eakins
    dlreport	    Jennifer Eakins
    extrd	    glushko
    hypotab	    danq
    ims2dmc	    Jennifer Eakins
    localmake  	    Kent Lindquist
    logs2dlevent    Jennifer Eakins
    mk_dmc_files    Jennifer Eakins
    ptt2stt	    Gary Pavlis
    rtkill	    Kent Lindquist
    tabcalc	    Gary Pavlis
    ucpwish	    Frank Vernon
    vnd2deployment  Jennifer Eakins

New libraries 
    libpool renamed libbrttpool
	
New examples
    dbbuild/dbbuild:
	add_samprate-dbbuild 
        datalogger_sn_swap-dbbuild 
        datalogger_type_swap-dbbuild 
        dl_sens_sn_swap-dbbuild 
        dl_sens_type_swap-dbbuild 
        multiple_sensors_diff-dbbuild 
        multiple_sensors_same-dbbuild 
        mv_station-dbbuild 
        orientation_swap-dbbuild 
        run_dbbuild   
        sensor_sn_orientation_swap-dbbuild 
        sensor_sn_swap-dbbuild
        sensor_type_swap-dbbuild

    swapbytes_example.c  
    waveformPkt.c


Include file differences
  new in /opt/antelope/4.10/include
    ArrivalUpdater.h        XcorProcessingEngine.h  libisi_list.h          
    FixedFormatTrace.h      antelopemake.local      libisi_logio.h         
    HeaderMap.h             fs2cs.h                 libisi_platform.h      
    ProcessingQueue.h       iir.h                   libisi_stdtypes.h      
    SignalToNoise.h         libisi_iacp.h           libisi_util.h          
    XcorAnalysisSetting.h   libisi_isi.h            
    subdirs (antelopemake helper script)               

Man page usage lines differences

    dbcalc.1:
	dbcalc -[ert] database.table [ record# | expr ]
	dbcalc -[ert] [-c expression] [database.table [ record# | expr ]]

    dbcentral.1:
	dbcentral [-n] [-t timestring] [-d] [-l] [-q queryfile] [database_clustername [task_nickname]]
	dbcentral [-a] [-n] [-t timestring] [-d] [-l] [-q queryfile] [database_clustername [task_nickname]]

    dbfixids.1:
	dbfixids db idname [ idstart ]dbfixids [-s server] db [db2 ...]
	dbfixids db idname [ idstart ]dbfixids [-i id1,id2,...] [-x id1,id2,...] [-s server] db [db2 ...]

    dbids.1:
	dbids [-p port] [-P pf] [-v] db
	dbids [-p port] [-P pf] db

    dbreplay.1:
	dbreplay [-b max-behind] [-F foreignkeys] [-n #pkts] [-p pktsuffix] [-r rate] [-s subset] [-t timestep] [-T timeout] [-w orbclient] [-dePuvx] db|vw [[[server] mintime] maxtime|period]
	dbreplay [-b max-behind] [-F foreignkeys] [-n #pkts] [-p pktsuffix] [-r rate] [-s subset] [-t timestep] [-T timeout] [-w orbclient] [-dePSuvx] db|vw orb [mintime [maxtime|period]]

    dbverify.1:
	dbverify [-tcijklprsuvx] [-S samples] [-A table[,table..]] [-C test1[,test2 ...]] [-I table[,table..]] [-N max-failures] [-O table[,table..]] [-P table[,table..]] database[.table]
	dbverify [-tcijklprsuvx] [-S samples] [-A table[,table..]] [-C test1[,test2 ...]] [-I table[,table..]] [-N max-failures] [-O table[,table..]] [-P table[,table..]] [-X pf] database[.table]

    dlautomrc.1:
	dlautomrc  [-a voltage_trigger ] [-d dltype] [-f] [-m "mail_list" ] [-n] [-p pfname] [-s "dl_sta1,dl_sta2,...."] [-t max_retries] [-v] [-x exclude] cmd_orb status_orb [target]
	dlautomrc  [-a voltage_trigger | -D database] [-d dltype] [-f] [-m "mail_list" ] [-n] [-N subset] [-p pfname] [-s "dl_sta1,dl_sta2,...."] [-t max_retries] [-v] [-V] [-x exclude] cmd_orb status_orb [target]

    dlmon.1:
	dlmon [-model dlmodel] [-mcol ncols] [-state {Icons|Multi|Single}] [-select_status expr] [-select_logs expr] [-subset expr] [-sort name] [-pf pfname] [-dump seconds] [-dump_image file] orbname [cmdorbname]
	dlmon [-model dlmodel] [-mcol ncols] [-state {Icons|Multi|Single}] [-backup_time secs] [-select_status expr] [-select_logs expr] [-subset expr] [-sort name] [-pf pfname] [-dump seconds] [-dump_image file] orbname [cmdorbname]

    ffilter.1:
	ffilter [-BbCcDdelnpStuvVXxz] [-E s/from/to/] [-m re] [-r re] [paths]
	ffilter [-aBbCcDdelnpStuvVXxz] [-E s/from/to/] [-m re] [-r re] [paths]

    ipvalidate.1:
	ipvalidate [-n list] [-p pf] [-v] [ip-addresses]
	ipvalidate [-p pf] [-v] [ip-addresses]

    miniseed2days.1:
	miniseed2days [-d db] [-S dir] [-w wfname] [-s start-time] [-e end-time] [-m match] [-r reject] [-cDIkRUuv] miniseed ...
	miniseed2days [-C chuckfile] [-d db] [-S dir] [-w wfname] [-s start-time] [-e end-time] [-m match] [-r reject] [-DIkUuv] miniseed ...

    mk_dataless_seed.1:
	mk_dataless_seed [-v] [-k] [-o dataless_seed] [-s station_regex] [-p parameter_file] input_database
	mk_dataless_seed [-v] [-k] [-n snet_regex] [-o dataless_seed] [-p parameter_file] [-s station_regex] input_database

    online_backup.1:
	online_backup [-dmnvV] [-p pf] [-y ydays][directories]
	online_backup [-dmnvV] [-c days] [-p pf] [-y ydays][directories]

    orb2ntp.1:
	orb2ntp [-d delay]         [-f freq] [-n navg]         [-m match] [-o nsec] [-r reject] [-u unit] [-v] orb
	orb2ntp [-d delay] [-f freq] [-m match] [-n navg] [-o nsec] [-r reject] [-u unit] [-v] orb

    orb2orb.1:
	orb2orb  [-dfltUvx] [-B bufsize] [-c pktsuffix] [-i burial-interval] [-m match] [-n npkts] [-p pf] [-r reject] [-R representation] [-s pktid] [-S statefile] [-T srcid-pf] [-u npkts] [-X xlat-pf] orbin orbout [start-time [period|end-time]]
	orb2orb  [-dfltUvx] [-B bufsize] [-c pktsuffix] [-C throttle] [-i burial-interval] [-m match] [-n npkts] [-p pf] [-r reject] [-R representation] [-s pktid] [-S statefile] [-T srcid-pf] [-u npkts] [-X xlat-pf] orbin orbout [start-time [period|end-time]]

    orbdisp.1:
	orbdisp  [-c chan_match] [-l max-latency] [-m srcmatch_re] [-n] [-p packet-period] [-r srcreject_re] [-w seconds] orbserver [start-time [range]]
	orbdisp  [-c chan_match] [-l max-latency] [-m srcmatch_re] [-n] [-r srcreject_re] [-w seconds] orbserver [start-time [range]]

    orbdlstat2xml.1:
	orbdlstat2xml orbname dir
	orbdlstat2xml [-v] [-a after] orbname dir

    pfecho.1:
	pfecho [-iqx] [-w|W] name [ params]pfwhich name
	pfecho [-iqRx] [-w|W] name [ params]pfwhich name

    q330util.1:
	q330util [-port localport] [-port_base port_base] [-auth auth] [-sequence sequence] [-timeout timeout] [-i local_ipaddr] { pollsn targetip | ping targetip,lport,{info|} | register targetip,sn,lport | getconfig targetip,sn,lport,config | control targetip,sn,{eeprom|reboot|resync|gpson|gpsoff|gpscs} | sbpwr targetip,sn,interface,function,timeout | rqannc targetip,sn}
	q330util [-port localport] [-port_base port_base] [-auth auth] [-sequence sequence] [-timeout timeout] [-i local_ipaddr] [-pfout] { pollsn q330ip | ping q330ip,lport,{info|} | register q330ip,sn,lport | getconfig q330ip,sn,lport,config | control q330ip,sn,{eeprom|reboot|resync|gpson|gpsoff|gpscs} | sbpwr q330ip,sn,interface,function,timeout | rqannc q330ip,sn | umsg q330ip,sn,lport,message | ident q330ip,sn[,tport[,lport]] | marmotfix q330ip,sn[,interface[,baudrate]]}

    rtmail.1:
	rtmail [-s subject] [-a filename] [-b bcc] [-c cc] [-v] [-d] recipient ...
	rtmail [-s subject] [-a filename] [-b bcc] [-c cc] [-f from] [-r replyto] [-v] [-d] recipient ...

    smartpick.1:
	smartpick [\-nowait | -nostarttalk] [\-appname window_name] [\-winfile filename] [\-comout named_pipe] [\-geom dbpick_geometry] [\-pf pfname] dbname [trial_dbname]
	smartpick [\-nowait | -nostarttalk] [\-appname window_name] [\-winfile filename] [\-dbxcor_appname window_name] [\-comout named_pipe] [\-geom dbpick_geometry] [\-pf pfname] dbname [trial_dbname]

Removed man pages:
    BasicTimeSeries.3            Basic_Time_Series.3          Datascope_Handle.3           
    GCLrays.3                    GCLraytrace.3                Metadata.3                   
    MetadataError.3              SeisppError.3                ThreeComponentSeismogram.3   
    Three_Component_Seismogram.3 TimeSeries.3                 Time_Series.3                
    TopMute.3                    Top_Mute.3                   add_staname.1                
    b3s2orb.1                    cluster.1                    cluster_cleanup.1            
    dbcheckseed.1                dbresample.1                 dbsteimu.1                   
    dsteim.1                     editgclgrid.1                interpolate1d.3              
    interpolator1d.3             ipd2.1                       makegclgrid.1                
    metadata.3                   metadata_error.3             mktt.1                       
    remodl.1                     required_unix_pgms.1         resample.3                   
    rt2orb.1                     seispp_error.3               setbrn.1                     
    slowness_object.3            taup2locsat.1                ucsdsp2db.1                  
    ucsdwf2db.1                  unsetenv.3                   

Added man pages:                                    
    64-bit.5                       64bit.1                        64bit_conversion.5             
    align_long.3                   antelopemake.5                 antelopemake.local.5           
    binbits.3p                     bpaxes.3p                      bpgrid.3p                
    bplot.3p                       bpmap.3p                       bppolyline.3p                  
    bppolypoint.3p                 bptrace.3p                     bpviewport.3p
    buhistory.3                    buhistory_add.3                buhistory_create.3
    buhistory_eval.3               buhistory_free.3               buhistory_free_tag.3
    buhistory_free_history.3       buhistory_get_history.3        buhistory_get_points.3
    buhistory_maxmin.3             buvector.3                     buvector_append.3              
    buvector_copy.3                buvector_create.3              buvector_create_response_fap.3 
    buvector_create_tsamp.3        buvector_eval.3                buvector_free.3                
    buvector_free_tag.3            buvector_free_vector.3         buvector_get_point.3           
    buvector_get_points.3          buvector_get_vector.3          buvector_maxmin.3              
    buvector_put.3                 buvector_puty.3                buvector_read.3                
    buvector_resize.3              buvector_transform_edp.3       certify.1                      
    conversion.5                   dbcalibrate.1                  disable_certify.1              
    displayscal.1                  examples_dbbuild.5             heartbeat2db.1                 
    history.3p                     history_add.3p                 history_create.3p
    history_eval.3p                history_free.3p                history_get.3p
    history_get_maxmin.3p          legit_fd.3                     lookup_user.3p                 
    marmot_web.5                   mkdlsensor.1                   msdpatch.3                     
    nscl.1                         orbaddcalib.1                  orblag.1                       
    orbperformance.1               orbproxy.1                     pktchannel2trace.3             
    pktchannel2trace_free.3        pktchannel2trace_new.3         pktchannel2trace_put.3         
    pktchannel2trace_put_from_db.3 ptkdebug.3p                    ptkfontfamily.3p               
    ptkfontsize.3p                 ptktypewriterfont.3p           tkorblag.1                     
    vector.3p                      vector_append.3p               vector_copy.3p
    vector_create.3p               vector_eval.3p                 vector_free.3p
    vector_get.3p                  vector_get_maxmin.3p           vector_get_point.3p
    vector_puty.3p                 vector_read.3p                 vector_read_response_fap.3p
    vector_transform_edp.3p
    webdlmon.3h                    

Added contrib:                            
    Msusneic.3p 		Danny Harvey                
    antelopemakelocal.5 	Kent Lindquist       
    arf.1			David von Seggern                 
    check_license_expiration.1  Steve Foley  
    db2ims.1			Jennifer Eakins                
    dbpick_combine.1		Jennifer Eakins        
    delay.1			David von Seggern               
    deployment2vnd.1		Jennifer Eakins        
    dlreport.1  		Jennifer Eakins              
    dmcbull.5   		Jennifer Eakins               
    dmcbull_schema.5   		Jennifer Eakins
    extrd.1			M. Glushko                      
    hypotab.1   		Gary L. Pavlis                
    ims2dmc.1   		Jennifer Eakins               
    localmake.1 		Kent Lindquist              
    logs2dlevent.1		Jennifer Eakins          
    mk_dmc_files.1		Jennifer Eakins          
    rtkill.1			Ruth Rutter and Kent Lindquist 
    tabcalc.1   		Gary L. Pavlis                
    vnd2deployment.1		Jennifer Eakins        

Parameter file differences

    /opt/antelope/4.9/data/pf/.dbe.pf /opt/antelope/4.10/data/pf/.dbe.pf
	< #	     Waveforms2 dbpick -
	> #	     Waveforms2 tkdbpick -
	< # for the wfdisc entry in the graphics array below.
	> # for the wfdisc entry in the graphics array below.  
	> #
	> # Note that dbpick does not take stdin as input

    /opt/antelope/4.9/data/pf/cf.pf /opt/antelope/4.10/data/pf/cf.pf
	> 	^.*cannot create
	> 	^.*cannot open
	> 	^make.*: Entering directory
	> 	^make.*: Leaving directory
	> 	^.*improper member use
	> 	^.*not found
	> 	^.*undefined struct\\/union member
	> 	^.*incomplete struct\\/union\\/enum 
	> 	^[[:alnum:]\\/]*:?[[:space:]]?\\/opt\\/antelope\\/[[:digit:].p]+\\/bin\\/dbwebproject:[[:space:]].*\\/?deposit[[:space:]]
	> 	^[[:space:]]*\\/bin\\/bash[[:space:]]
	> 	^[[:space:]]*config\\/install-sh[[:space:]]
	> 	^test[[:space:]]

    /opt/antelope/4.9/data/pf/dlmon.pf /opt/antelope/4.10/data/pf/dlmon.pf
	extensive changes to reflect configuration for USArray

    /opt/antelope/4.9/data/pf/elog.pf /opt/antelope/4.10/data/pf/elog.pf
	> t_format	%a %b %e %H:%M:%S %Y
	> u_format	%Y-%j %H:%M:%S

    /opt/antelope/4.9/data/pf/make_dbrecenteqs_map.pf /opt/antelope/4.10/data/pf/make_dbrecenteqs_map.pf
	> 	stations_subset &Tbl{
	> 		dbopen site
	> 		dbsubset offdate == NULL 
	> 	}

    /opt/antelope/4.9/data/pf/msdd.pf /opt/antelope/4.10/data/pf/msdd.pf
	>     scan                look for next bad block

    /opt/antelope/4.9/data/pf/q3302orb.pf /opt/antelope/4.10/data/pf/q3302orb.pf
	changes for new auto buffer flushing capability and related to sensor calibrations
	> db_orbtag			dataorb		# command line orb tag for db packets
	> flush_buffer_thresh		0		# flush Q330 data buffer if the buffer gets larger than this 
	> 						#	percentage full - 0 to disable 
	> flush_buffer_age		0		# data packets with ages greater than this value in seconds
	> 						#	are flushed - 0 means flush entire buffer
	< 	data_cal_error		yes	no	mst
	> 	data_cal_error		yes	yes	mst
	< 	data_cal_status		yes	no	0
	> 	data_cal_status		yes	yes	0

    /opt/antelope/4.9/data/pf/rtexec.pf /opt/antelope/4.10/data/pf/rtexec.pf
	< Min_vmfree        50    # Mbytes
	> Min_vmfree        50 # Mbytes min for Solaris 
	< # following are used by rtreport
	< minimum_days_data_space_left		3
	< minimum_Mbytes_database_space_left	2000
	< maximum_Mbytes_logs_space_used		100
	< minimum_Mbytes_root_space_left		100

    /opt/antelope/4.9/data/pf/rtreports.pf /opt/antelope/4.10/data/pf/rtreports.pf
	> minimum_days_data_space_left            3
	> minimum_Mbytes_database_space_left      2000
	> maximum_Mbytes_logs_space_used          100
	> minimum_Mbytes_root_space_left          100

    /opt/antelope/4.9/data/pf/smartpick.pf /opt/antelope/4.10/data/pf/smartpick.pf
	extensive changes

    /opt/antelope/4.9/data/pf/trdefaults.pf /opt/antelope/4.10/data/pf/trdefaults.pf
	> wfdisc_roundoff 	.000005 
	>     M        millimeters      Wood-Anderson drum recorder

    /opt/antelope/4.9/data/pf/trexcerpt.pf /opt/antelope/4.10/data/pf/trexcerpt.pf
	add outer join with site even in the straight wfdisc views

Library differences
    libbrttutil 
      Added
        buhistory_add        buhistory_create       buhistory_eval        buhistory_free
        buhistory_free_tag   buhistory_free_history buhistory_get_history buhistory_get_points
        buhistory_maxmin     buvector_append        buvector_copy         buvector_create
        buvector_create_response_fap                buvector_create_tsamp buvector_eval
        buvector_free        buvector_free_tag      buvector_free_vector  buvector_get_point           
        buvector_get_points  buvector_get_vector    buvector_maxmin       buvector_put
        buvector_puty        buvector_read          buvector_resize       buvector_transform_edp

    libdeviants 
      Deleted
       UNIMPLEMENTED
       unsetenv

    libstock 
      Deleted
	PerlOldRelics  PerlRelics     absdir         complain       die
	expandx        perlexhume     register_error showenv        showlist

    libtr 
      Deleted
	get_seed_data_record show_field           trload_arrivals      

      Added
       trWFDISC_ROUNDOFF    ustc_patch

Detailed Changes from logs

    64 bit changes were made across the board, but these should have no affect on 
    the 32 bit version of antelope.

    antelope_update 
	try to fix so that return codes are always non-zero for failure
	try to make the return code from antelope_update reflect whether
	there are patches available.
	use hostname from osinfo instead of using uname directly
	try to make it look better, and maybe catch a few more errors
	during patch installation attempts

    antelopemake
	add XINCLUDE to CXXFLAGS as Gary requested
	use CC instead of ld to create dynamic load libraries with new solaris compilers
	try eliminating the .F rules -- maybe Sun has fixed the rules in the latest 
	compilers
	enable c99 constructs 
	switch to script subdirs script for list of directories
	don't descend into certify directories during makes

    antelopemake.5
	added new man page on $ANTELOPE/include/antelopemake

    askyn.pm
	add a method for checking if all entries in a (very simple) parameter file
	(like config.pf) are filled in.
	make prompt for a value more bold
	insist that parameter be entered in editpfile

    certify 
	add bitness
	put certify into distribution to encourage development of regression
	tests.
	
	allow tests in subdirectory of local directory
	so that tests are closely associated with source code.

    chk_miniseed
	deprecate chk_miniseed in favor of chkmsd

    css3.0
	Add words about . characters indicating indeterminate measurements.

    css3.0.ext calresult sensorcal sensormodel
	schema changes to support new sensor calibration

    css3.0.ext seismometer sensormodel
	fix bad formats in seismometer and sensormodel tables

    css3.0.ext/dlcalwf
	This is a new table that will be used in place of the
	old calwf table to reference calibration waveforms. The
	old calwf table is so SDAS specific I decided to just leave 
	it alone since presumably there are still people who are 
	doing calibrations with the Q730B. I have attempted to make
	this new table a little more generic, although it still
	is aimed mainly at supporting Q330 cals.
	Add a few more attributes.
	Fixed problem with model attribute
	Add samprate to dlcalwf schema to make analysis processing easier

    css3.0.ext/dlsensor sensormodel
	Add new tables to support calibration

    data/templates perl
	add 'use strict' and 'our ($opt_n, $opt_v) ; ' to template

    data/templates/ptk
	add use strict
	use POSIX::_exit instead of $MW->destroy() to avoid some error messages
	showing up at the command line.

    db2msd 
	Don't recompress S1 format miniseed

    db2sd 
	back up the endtime in the 050 blockette by .1 msec so it doesn't
	fall into the next day, at the request of Eliana and the DMC.

    dbbuild dbbuild_examples.5
	Add some BUGS and CAVEATS.
	Reference new files in $ANTELOPE/example/dbbuild
	Fix some errors
	Add examples

    dbbuild 
	allow dbbuild to proceed even if response file fails test

	Attempt to resolve a problem Hank at UCSB pointed out sometime
	ago where he was unable to close a set of identical sensors at
	a station.  This is partly a (dbbuild batch) language issue,
	as "close sensor sensor-name" can't distinguish multiple
	sensors with the same name.  Previously, it was only closing
	all the named sensor in the database, but not doing the
	corresponding operation completely in its internal
	configuration.  Now, close sensor sensor-name closes all
	sensors of the specified name at the current station.

	added a quit batch command to prematurely terminate
	execution of a batch file, to make debugging easier.

	tried to make the output of the dump command more streamlined
	and readable, and the error messages when things fail a little
	clearer.

	fix problem with specifying lead in generated batch file

	fix net/network problem in generated batch file

	eliminate checks on the second letter of a channel code, which
	is specified in the sensor parameter file.  The user must
	guarantee this is correct.  (Previously, disallowed 'P' for
	geophone, as pointed out by Niko)

	add option to hide some of the dbbuild panel windows so that
	the gui can be used on really small screens

    dbbuild: mb2000_fil.pf mb2000_raw.pf
	changing the orientation letter to D instead of 0 for these
	barometers, since that's evidently what UCSB uses, and maybe they
	know what they're doing.  I don't think 0 can be correct.


    dbbuild: sts2 sensors
	Newly discovered information.
	
	Very Important for sensor response aficionados and
	dataless seed builders and users:
	
	Whereas the mechanical part of the STS-2 seismometer 
	never changed since 1990, the electronics part has 
	been redesigned twice. 
	
	There exist three different "electronic" generations 
	which differ in the transfer function at frequencies 
	above 10 Hz.
	
	sts2_g1    shipped 04/90-06/95
	sts2_g2    shipped 06/95-02/98
	sts2_g3    shipped 02/98 thru present
	
	if any questions consult VLSTGEN2-ext.pdf or contact 
	Streckeisen representative
	
	Notice that the old sts2.pf file has been moved to
	old_sts2.pf!
	
	This is done to make sure that future response 
	databases can be build properly.

    dbbuild/sensors 
	Added in following parameters to allow q330 calibration processing to work
	with sensormodel table.
	
	caldrive        c
	active          yes
	calgen          1
	cal2rsp         1
	calper          1

    dbcalc 
	add option to evaluate and print a single expression from the command line, suggested by David Vonseggern

    dbcalibrate 
	Initial checkin of new sensor analysis calibration
	program. 

	Eliminate and completely rewrite original Russell FORTRAN code
	for doing the stacked cross-correlation/auto-correlation method
	for computing stable spectral ratios as sensor response functions.
	The computational algorithm is very similar to the original method
	by Russell except: 1) time windows may overlap, 2) tapering is done
	in the time domain instead of the frequency domain, 3) an arbitrary
	number of frequency bands with different processing parameters can
	be specified (Russell's was hardwired to 2), 4) the frequency
	boundaries between the different bands can be specified as parameters.
	All coding is in C and uses doubles.
	
	Eliminate use of the old math library fft, t2f and taper routines
	that were original written in FORTRAN and converted to c with f2c.
	These routines have been rewritten directly in C. Dynamic memory
	allocation is supported in t2f and eveything uses doubles instead
	of floats.

	Changes to implement comparison cals.

    dbcheck_responses
	print out peak magnitude instead of average magnitude, and try to suggest
	a new normalization factor if there's a paz stage in the response and 
	the response doesn't appear to be normalized.  Print everything at
	lower resolution to avoid problems with comparing results from Linux to 
	Solaris to Mac.

    dbcreate 
	fix dbcreate to use the right name for idserver (dbidserver)

    dbdetect.1
	Clarify the reject Tbl comments in pf and man page.

    dbe
	fix problem Natasha pointed out with dbe
	fix mac problem in dbe
	alphabetize the results from a schema search
	change label for menubar font size changes
	change default fonts for dbe to make them smaller, and squash together the
	labels a bit to make buttons smaller

    dbe.1 
	Additional explanation of Waveforms menu item
	based on discussions with David Vonseggern.

    dbevents 
	Fix a long standing bug involving an uninitialized array.
	The Koreans finally provided the smoking gun with enough 
	detailed info to track it down.

    dbfixids 
	try to add capability Frank requested, for synchronization with multiple id servers
	update error message, fix typo in man page
	update man page to reflect new options in dbfixids

    dbids 
	fix the valid ip address checking

    dbloc2 
	try to fix problems Natasha pointed out
	Add examples of parameters to change in PF.
	attempt to fix locking problem on leopard
	switch to newer method for defining fonts which works better in more recent versions of tcl/tk
	generally make layout tighter for smaller screens
	All these changes relate to the look and feel of dbloc2 -- nothing much 
	has changed, but the look of buttons is different and everything squeezed
	together much more, which should make it work better on a mac.
	try to make dblocsat2 barf if there are too many arrivals, rather than say, quietly hanging
	add some words about some of the restrictions for dblocsat2, per Taimi
	rearrange some in attempt to make window workable on small screens
	rework the font specs in dbloc2.pf

    dbloc2_report_bug
	Change default filename extension from Z to gz 
	to match actual compression done by dbloc_snapshot.

    dbpick.1
	explain that "-" cannot be used as the database name.
	Add more description of filtering parameters in X default
	resource database.

    dbreplay 
	retrofit dbreplay so it can do the kind of simulation which db2orb
	used to do and Anton is requesting.
	fix the -r option also
	switch to 1 second packets for realtime simulation option
	make sure packets don't appear ahead of realtime
	fix a small leak 
	
    dbverify 
	allow alternate parameter file

    df2orb
	add count packet option to df2orb to simplify testing for leaks.

    diskserver
	print correct sizes
	add some more statistics at diskserver startup

    displaynoise
	First cut at new display routines for sensor calibration

    displayscal
	new program for displaying sensor calibrations produced by dbcalibrate

    dlmon 
	Fix a bug in processing stash packets.
	Add -backup_time parameter in command line and pf file.
	Add sensor calibration defs in pf file.
	Put back in mac-dependent resizing stuff.
	Put in calibration related parameter display

    elog 
	don't print out all error messages every time

    event_archive 
	add checking for filled field in gap table for mk_gap_wfdisc.

    examples 
	add example of swapbytes routines

    example/c/db dbprocess.pf
	add example of using joinkeys in dbprocess

    example/c/orb
	add a waveform packet example

    fdkey.c
	replace poll implementation with select so this works on macs

    ffilter
	change auto-splitting of input lines from stdin

    getid
	add alternation expression to getid
	fix `getid bits`

	try detecting /usr/X11 before /usr/X11R6 to avoid copying libX11.dylib to antelope/lib

	add to getid
	    dynamiclib   so.3
	    staticlib    a
	    versiondigit 3  # also used for version in perl extensions

	eliminate
	    libversion   3
    grepsrc 
	add objective c files to the c++ search

    heartbeat2db
	add script to read heartbeat lines and save relevant parameters into a database,
	for easier graphing.
	add an example of using dbgraph

    ipvalidate 
	adapt to table of rejected ip addresses

    ldlibs 
	deprecate fortran with ldlibs
	change some -V usage to -v

    libPkt 
	change the way showPkt prints stash packets to allow tabs and linefeeds

    libbrttpkt 
	Added documentation for new accumulator used in the evproc stuff.
	Added pktchannel2trace_get_stats call
	Make work properly with db data that is stored as floats.

    libbrttutil
	Make so that pmtfifo_data_available returns the number of
	entries in the queue instead of always 1 when data is available.

	Move old tcltk vector methods to brttutil and rename it buvector.
	This will provide a common utility for new ptkbplot and old tcltkbplot
	widgets.

	Added time history routines into brttutil.

    libcoords
	gfortran doesn't seem to like unit numbers to be 2 byte integers

    libdeviants 
	use Committed_AS - buffer space as mem used on linux, in an
	attempt to get some meaningful total statistic.
	some hopeful improvements on infopath
	various minor issues, including putting in a declaration of strsignal(), 
	which is difficult to get from the system include files, and shows
	up in different files on different systems
	remove unsetenv man page, now a system routine

    libdeviants/Linux sysboottime
	make buffer larger to read sys boot time

    libds 
	suggest checking locking when an invalid record size is detected if locks are not turned on.
	update various man pages, mostly related to changing ints to longs

    libforb 
	attempt to make forb routines faster by streamlining the read of packet times

    libmappts
	make dynamic library of mappts

    liborb 
	remove ORBPREVT and ORBNEXTT, casualties of the removal of the time
	threaded index from the orbserver.
	fix two leaks related to selection/rejection strings in orb reopen logic
	compute lag properly even when there is only a small gap in pktids between newest and oldest
	only count clients which are reaping in the lag statistics

    libpool -> libbrttpool
	switch libpool to libbrttpool to avoid system conflict

    libresponse 
	make the output fir/paz filters print a little more legibly
	Try to avoid some problems where response files are incorrectly formatted.
	attempt to improve the search for the flat area of response curve
	try to be more careful about finding the frequency range of a response, 
	doing something different and simpler for simple fir filter responses.
	install iir.h include file for iir filters

    libstock 
	redo implementation of freespace to just use vfstat
	fix calculation of freespace
	close a memory leak in elog routines exercised in showPkt
	avoid at least one potential infinite loop inside the verification routine
	    for the stash file
	correct the return value from fstraverse
	add reclose, reopen to re-stable of routines
	clarify that source and destination may be the same for cleanpath
	make yearday long, to avoid problems like dbputv(db, 0, "jdate", yearday(time), NULL) ;
	add another legit_ip routine which just takes the socket fd
	allow adding a list of reject_ip_addresses in the parameter file alongside valid_ip_addresses.
	remove showenv from stock library, put into libxtra
	allow modifying the precise format of the time tag by changing a format string
	in elog.pf.  It might be useful to add the day of the week for instance, 
	or to specify both a utc time and a localtime (hour:minute only perhaps), 
	to make it easier to connect local events (machines going down) with log events.
	remove automatic uncompression during open in mapfile; fixes mysterious behavior in orbxfer2 
	fix leaks in elog routines

    libtr
	fix blunder which Cecily uncovered in steim uncompression routine -- 
	result was segmentation fault for some of her miniseed files.
	fix problem saving floating point data into sd format with trputwf
	correct duplicate close in trputwf
	define some new constants for umsd(3)
	fix the output from msdget when no 1000 blockette is present for sparc_order and datatype.
	Allow the new DMC miniseed data code 'M' (in addition to 'D', 'R', and 'Q').
	modify return codes in ustc to be more meaningful
	add Wood-Anderson drum recorder to trdefaults.pf table
	deprecate trputwf
	do some initialization properly even if trdefaults is screwed up
	add hack in trclip to attempt to avoid Frank's wfdisc woes: force
	    rounded time value to be less than desired endtime.
	make error message more verbose for Eliana
	try to make it clearer that trwftype doesn't return a dynamically allocated
	structure, but a pointer to a static structure.
	when reading miniseed waveforms, read all the blockettes, not just the standard seed header.
	This allows reading (what I think is) improper miniseed where
	the sample rate in the standard header is zero, evidently created by
	Nanometrics software.

	evade overflow in the sequence number of (mini)seed blocks by rolling over

    miniseed2days 
	try to mention all dropped blocks.
	eliminate option to remove input files
	add another caveat about -U option
	more verbosity changes
	restore the -c option with a default file of chuckfile.
	more verbosity during -u processing
	clarify dropping of bad time quality input miniseed blocks

    miniseed2days 
	change -c option to -C filename so omitted blocks are copied out to a
	separate chuckfile

    miniseed2db
	check for mmap failure, and mention the possibility in the man page.
	add another branch for when file fails is_file(3) because it is too large

    mk_dataless_seed 
	Add snet subset option

    monitor_memory
	gui for monitoring a process' memory usage

    msdd 
	fix so it doesn't lie about miniseed datatype when there is no 1000 blockette
	fix interactive mode save command 
	add interactive command to scan for bad blocks
	make the hdr format output a bit more verbose and easier to read


    online_backup
	use strict
	log to local directory logs instead of /var/tmp if it exists
	use osinfo instead of uname directly
	switch to rtmail for mail

    orb2cd1s
	Replace verbose printfs with elog_notify.
	Clean up prototypes so compiles cleanly.

    orb2db 
	attempt to fix problem at DMC: orb2db too slow
	fix a couple typos -- should eliminate error messages with pktid == -5
	try to make waveform locking safe for simpletech disks
	stop complaining about being unable to verify the size of previous ascii 
	    (and perhaps other) waveform files on restart.

    orb2disk
	try to be more graceful when disk space is limited
	try to add warning complaint when diskserver disk usage is less than requested
	add some options to the usage line
	add a comment about packets which seem to jump way ahead in time
	try to handle disk full situations better, and generally approach the
	    limit on disk size more carefully, so it should not typically be exceeded.
	Change the behavior when opening a directory of forb files to position
	    the read pointer at the most recent packet, similar to what the orbserver
	    does.
	fix messages to be more informative.
	correct a bug in the naming of segment files which was probably introduced recently.
	correct the checking of free space at startup
	update man page to show some of the error messages from forb(3)
	These changes should avoid problems with the segment time getting set to 
	    sometime in 2035, and also eliminate the problem where segment files 
	    get only one packet per segment.
	add some sanity tests to forbput:
	   check that time < 1/1/2040
	   srcname is ascii, not null, less than ORBSRCNAME_SIZE in length
	Possibly the ascii requirement could cause problems somewhere. 
	change default max packets per segment to 10,000 for better performance 
	open the (forb) disk before opening the orbserver, so that clean up
	    occurs before trying to open the orbserver.  This might be useful
	    in some situations

    orb2ntp
	Change orb2ntp so that it always sets the system clock according to
	the incoming packet times, without regard to how different they may be
	from the current time.  If the packet times vary widely (as we've seen
	in the past with RefTek, for example), the clock may move both forward
	and backward, leading to confusing and perhaps useless time tags in
	the logs. 

	add some more info about ntpq output, complain more loudly when clock 
	is moved backwards.

    orb2orb 
	add option of choosing metering rate in packets/second in addition to
	existing option of kbytes/second.

    orbaddcalib 
	This is the initial checkin of a new orb utility
	that will add calib, calper and segtype on-the-fly
	into ORB wavefrom packets as they are copied from 
	one orb to another orb. Optionally, the SEED codes 
	can be translated on-the-fly. Unlike orb2genc,
	this program does not attempt to reformat any of
	the ORB packets; it preserves whatever formats 
	the packets had originally. This program will allow
	heavily threaded programs like q3302orb to not
	have to rely on master databases for filling in
	these values since datascope and threading are not
	particularly compatible. This will also provide a
	means to fill in NULL values from any other sources
	before the packets hit orb2db. Note that this program 
	necessarily unstuffs and restuffs each waveform 
	packet. This means that the various SEED packet 
	types will not get processed by this program (since 
	there are no general stuff routines for these 
	packets).

	Added -onlynull processing flag.

    orbdisp 
	fix error in channel matching

    orblag, tkorblag
	new utility programs

    orbmonrtd 
	tidy up the man page a bit
	
	eliminate the attempt to use the settings from the sources list in the parameter file
	for sources on the command line.  A mixture of sources with settings and without, 
	in either the parameter file or as the result of an admixture of a parameter file
	and sources on the command line results in extra timelines and apparently random
	timeshifts between adjacent channels.

    orbperformance 
	program to help in measuring orbserver performance

    orbproxy 
	a simple orbserver proxy program that can be run on a host
	remote from the proxied orbserver. This provides a means on marmot
	concentrator units to access remote orbservers from other marmots in the
	field without needing any local buffering. Like with the orbserver, 
	multiple simultaneous independent client connections are supported
	and the robust liborb automatic reconnection is supported so that
	the proxy is transparent to orb client programs.

    orbserver
	eliminate time linked-list inside orbserver for greater throughput
	put the right value in the status struct for large ring buffers

    orbserver64 
	add 64bit to the stat from orbserver64, so you can tell if you're connected to 
	a 64bit orb

    orbstat 
	switch from baud to bps at Chad's suggestion
	fix formatting of source list headers a bit, change to 1 digit after decimal point for baud rate

    orbxchange 
	try to fix problem switching from one orb provider to another, described by Artak 
	fix for linux

    osinfo.pm
	truncate the .local Mac OS X appends to the local hostname
	add bits routine for certify
	change so that osinfo gets just the simple hostname, not the fully qualified hostname (on Darwin)
	on marmot(arm) return serialnumber for hostid, marmot- for hostname
	add bitness and passwd lookup

    perl/vector 
	Add new Vector perl module to encapsulate buvector methods
	in brttutil.
	Added new History package

    perldb
	add pfget_size and pfget_time to perl interface
	change for odd behavior of setrlimit on Darwin
	fix strsignal when result is null 
	correct the initialization of some bury parameters
	correct description of strlocaldate

    perlorb
	document orblag call in perl orb interface

    perlq330 
	Fix problems in checksum and crc computations when actual payload after
	the QPD header is 0 bytes long.

    pfecho 
	add option to show when parameter values are overridden by later parameter files

    ptk.pm
	add canvas to ptk
	add notebook, notebookpage and endnotebook to the ptk widgets
	improve the error handling a bit when the layout specs are bad

    ptkbplot 
	Port of the brttplot tk widget extensions to
	perltk. 

	Added Tk::Bplot::getviewportwcoords method

	Added polypoint canvas item and hooked up with new brttutil buvector methods.

	Added polyline and ptext and added another test script

    q3302orb
	Added flush_buffer_thresh and flush_buffer_age parameters to implement
	    the flush old data capability requested by Bob Busby.
	Added automatically generated warning log message whenever the DP token
	    values of net and sta are different from the values for physical channel
	    0 acquisition as defined in the q3302orb.pf configuration.
	Large scale changes to support sensor calibration.
	    The approach is to look for special calibration structures
	    that get inserted into the data streams that announce a
	    calibration is taking place. The changes will cause the 
	    creation of new database ORB packets in the new dlcalwf
	    table that will hopefully end up in an archive database
	    somewhere and reference the calibration waveforms, both
	    sensor and loopback (monitor), along with all of the 
	    calibration parameters, such as waveform type, amplitude
	    durations, etc. This approach pretty well decouples the
	    commanding, capture and analysis phases so that any tool
	    could be used to command the calibration, but q3302orb
	    would still see it and create the capture database rows.
	    If I have set up the new table correctly, just about
	    any tool could also be used to do the analysis. Of course,
	    there are the grungy details of joining the sensor
	    info with the necessarily datalogger-centric new
	    dlcalwf table, but that would have to be done downstream
	    regardless.
	Add definitions for registration packets
	Add a few more packet types
	Turn on calibrate error and calibrate status in default statuf pf
	Add samprate to dlcalwf schema to make analysis processing easier.
	Add local system time to timing packets.
	Always set shutdown flag the very first thing no matter what
	    in signal handler.
	This changes the first-last syncronization across link cycles.
	Rearrenge repkt flushing and add mutex to repkt routines
	Add option to control length of write mtfifo queue length
	Always put stdout output logs to be inserted at the head
	    of the write mtfifo to get printed immediately.
	Attempt to limit size of write queue by blocking
	    on the data packet read end.
	Re-arrange signal handling.
	Make sure that the timing packets are always pushed to the front
	of the write FIFO to minimize latencies.
	Add diagnostic log message to indicate when write thread has been flushed.
	Forgot to parse -port_base arg.
	Add capability to control individual sensor channels in
	    a sensor calibration so that a pure DAC to ADC loopback
	    with no sensors can be done.
	Suck on write mtfifo a lot longer before giving up when shutting down.

    q330util
	Major changes to q330util to implement new marmotfix and ident
	functions.

	Added -pfout option and updated man page.

	Add number_reboots and time_last_reboot to ident function.

	Add umsg command.

    qtunbale 
	try to fix Gary's problems with qtunbale

    rt_baler_info
	Better initialization
	retry missing stations after each pass
	better error logging

    rtbackup
	Complete rewrite.  Now backs up to disk.
	Still needs to backup event data.
	Old program now named rtbackup2tape.

	Major improvements in memory usage and pre-trexcerpt time.  These changes
	were pushed by stress testing the program on USArray TA data which indicated
	potential problems on large networks.  These problems would not show up in
	normal networks.

	Still need to get more creative with the trexcerpt section for TA.  Currently
	trexcerpt requires about 1.5 minutes to archive one day of TA station data.
	At 400 stations this translates into about 10 hours of trexcerpt wall clock time
	to process 1 network day of data (~3 GBytes).

    rtbulletin.1
	add -A to options

    rtexec 
	remove colon from cron log filenames, to satisfy special mac filename requirements
	check for existence of orbstat program before running it
	try to prevent rtexec from committing suicide by sending itself a kill signal 
	    during startup
	change printf to print so that perl doesn't try to interpret format specifiers in the shutdown reasons
	ensure that rtexec pid is cleared as system shuts down, and this 
	    is done before the database is closed.
	try to clean up the naming of cron log files 
	try to fix up bug caused by closing @Db in an attempt to always save the
	    database under Linux

    rtm
	Cleanup the handling of cron jobs, and always bring up the process panel in rtm
	sort the list of channels passed to orbmonrtd
	remove obsolete errors file from rtm View menu

    rtmail 
	Implement replyto and from options.
	    Allows user to specify a reply-to address rather than the
	    generic responding to the generic $user@$mailhost.
	attempt to deal with new CBL blocking of helo codes like "helo localhost"

    rtreport 
	attempt to make rtreport and rtsys always report to stdout as well as sending mail, at Frank's request
	make rtreport more useful at detecting multiple wfdisc records per channel
	Revert to having warning levels specified in rtreports.pf not rtexec.pf. 

    rtsys
	eliminate dependence on a waveform database.

    schemas SDAS1.0 autodrm1.0 css3.0 cvs1.0 balerlist calresult calwf chanperf digitizer dlcalwf dlsensor dlsite dmcseed gps latency netperf q330comm q730b retransmit seismometer sensorcal sensormodel
	mostly change %d to %ld 

    schemas css3.brtt
	first pass at extending css3.0 in small ways for 64 bit

    schemas css3.0.ext sensormodel
	Added sngen and nominal response

    schemas css3.0.ext dlcalwf sensorcal
	Add dlcalseqr and timer to support comparison calibrations

    sd2db
	revert to using same order in fir filters in seed volumes as in response files, in response 
	to "FDSN" "decision".

    sdd 
	stop printing errors in fir/paz coefficients if they're zero (minimize optical noise)

    snapshot.pm antelope.1.id antelope.3 bugs.5 debugging.5
	Request use of support@brtt.com over personal email
	    for bug reports or support requests.
	restrict the output size of ls in snapshot
	add solaris release info to snapshot

    swapbytes.h
	add the c++ stuff that Gary and Kent have requested

    table2grid.tcl
	fix deficiency in the blt table replacement code

    tail2orb
	Fix minor leak in tail2orb, make one complaint a bit clearer.
	switch from baud to byte

    tcl library tkdialog.tcl
	use newer form of font spec

    tks.h
	make tks.h safe for c++ at Kent's suggestion

    trdisp.1
	Additional explanation of importance of join
	    order for input view based on discussions with 
	    David Vonseggern.

    trexcerpt 
	Try to make error message more clear when output would exceed css3.0 limits
	on nsamp.
	attempt to eliminate complaints about state of health channels with no sensor table entry.
	add comment in man page about new parameter file parameter state_of_health_channels

    truncate_log
	change truncate_log to clean up the rtsys database by keeping
	    only the last few hundred records in the history, cron_history and shutdown
	    tables.

    xdiff
	add -q option