changed output to be non-cascarding when using -n switch
[yaz-moved-to-github.git] / NEWS
diff --git a/NEWS b/NEWS
index 46a7281..8a6e915 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,408 @@
-Possible compatibility problems with earlier versions marked with '*'.
+Added timings utility (yaz/timing.h)
+
+--- 2.1.44 2007/01/03
+
+Added yaz_marc_write_xml which creates MARCXML/MarcXchange record as
+Libxml2 tree.
+
+Fixed bug #779: Rotation of apdu.log fails.
+
+Fixed for character set conversions:
+  Unicode to MARC-8 conversion for certain less preferred UTF-8 sequences.
+  Honor G1 set in MARC-8 decoding.
+
+--- 2.1.42 2006/12/17
+
+Fixed bug #775: char conversion does not handle Alternative UTF-8
+sequences.
+
+Implemented function yaz_marc_read_line which parses MARC line format
+records. There is a wealth of formats out there. So far, this function
+reads line records produced by yaz_marc_write_line.
+
+yaz-marcdump's options -x, -X, -I, -e have been replaced with the
+more generic and easier to remember(!) options: -i format and -o format
+which specifies input format and output format respectively - where
+format is one of "marc", "marcxml", "line", "marcxchange".
+
+Added 'check only' option for MARC utilities. Option -n for yaz-marcdump
+does not print anything except warnings for records.
+
+For yaz-marcdump, added support for MARC split into files (-s) with a given
+chunk size (-C).
+
+Changed the SRU update structures and codecs to reflect the SRU pre 1.0
+spec, at http://www.loc.gov/standards/sru/record-update/
+This has changed the binary layout of the following structs:
+Z_SRW_extra_record, Z_SRW_updateRequest, Z_SRW_updateResponse and
+bend_update_rr . Patch by Ko van der Sloot.
+
+Added GFS utility function bend_assoc_is_alive which returns 1 if
+association is still alive (client is connected); 0 otherwise (client
+closed connection). This allows busy servers to stop working for
+impatient clients.
+
+Added ziffy: the promiscuous Z39.50 APDU sniffer. until now, ziffy has
+been a separate piece of software. This version of ziffy has been modified
+to fit with YAZ. ziffy is copyright Rocco Carbone and covered by GPL v2.
+
+Fixed bug #740: Handle SRU records referring to xmlns's outside recordData.
+
+Fixed bug #722: Allow Z39.50 Init Options to be specified / retrieved.
+Client code may now interrogate options such as "init_opt_sort" to
+find out whether the server claims to support various options.
+
+--- 2.1.40 2006/11/27
+
+Added utilities yaz_{set,get}_esn to set/get element set name from
+record composition.
+
+Removed the build of libyazthread.la. The libyaz.so is the threaded version
+of YAZ and has been so since YAZ 2.1.10.
+
+Implemented ZOOM_record_error which returns error information for
+record (surrogate diagnostic).
+
+--- 2.1.38 2006/10/31
+
+Updates for SRU Update by Ko van der Sloot:
+1. Changed name from "operation" to "action"
+2. Fixed that that "recordIdentifier" was called "recordId". Kept the old
+versions in the code, marked as 'backward compatible'.
+3. Added diagnostics for SRU Update.
+
+Fixed bug #709: Records are fetched in wrong format when tasks are queued.
+
+Fixed bug #707: CQL->RPN ignores lines with leading spaces.
+
+Fixed bug #706: XML hex encoding UTF-8 chars out of range 0-255.
+
+For GFS, fixed problem with SRU diagnostic 'First record position out of
+range' being issued for 0 hits.
+
+zoomtst10 part of Windows Build.
+
+--- 2.1.36 2006/10/13
+
+Implemented yaz_filepath_comp which splits a path into file path
+components (required by Zebra 2.0.3+).
+
+Change wording of YAZ license to the 'Revised BSD License'. YAZ has used a
+BSD inspired license until now so this should not have any real impact on
+anybody. See http://www.opensource.org/licenses/bsd-license.php
+
+Fixed bug #687: Missing log lines.
+
+Fixed bug #678: CQL to PQF translation does not preserve double-quote
+escaping.
+
+Fixed bug #689: SRU diagnostics to be added.
+
+Implemented new ZOOM function, ZOOM_connection_is_idle, which checks
+whether a connection is idle (no more work do do).
+
+--- 2.1.34 2006/10/04
+
+Change type of optval from long to int for invocation of setsockopt with
+the SO_REUSEADDR option. Thanks to Ateeq A. Altaf, Talis.
+
+Added support for specifying the max log file size for the Generic
+Frontend Server. The size is given with option -r.
+
+--- 2.1.32 2006/09/21
+
+Fix problem introduced in YAZ 2.1.28 WRT unix sockets in the ZOOM code.
+
+--- 2.1.30 2006/09/17
+
+Fixes for getaddrinfo use, Bugs #655 + #660. These bugs were introduced
+in YAZ 2.1.28.
+
+Fixed bug in Generic Frontend Server that could cause a server to stop
+accepting new connections. Bug only seen on dual CPU Windows 2003 server.
+
+For the generic frontend server, the maximum record size is used as maximum
+size of incoming packages (SRU + Z39.50). The value until was previously 
+only used in Z39.50 Init negotiation and, later, in a session controlled
+sizes of records returned. This is controlled using -k option. It can be
+specified, per server, with element maximumrecordsize in YAZ' GFS XML config.
+
+--- 2.1.28 2006/09/04
+
+TCP/IP comstack uses getaddrinfo now to resolve names. It should be IPV6
+friendly now.
+
+Fixed bug #644: Using Non Reentrant gethostbyname causes SIGSEGV.
+
+New option for yaz-marcdump -lpos=value which allows setting a portion
+of MARC header to a certain value.
+
+Fixes for MARC generation when encoded as MARC-8 (bug 642, 643).
+
+ZOOM-C reads option extraArgs. If set the value of extraArgs is appended to
+SRU URI (POST/GET). Value must be URL encoded, such as x-id-a=v1&x-id-b=v2 .
+
+--- 2.1.26 2006/08/15
+
+Fixed problem with SRU mode type (soap, get, post) for yaz-client
+and ZOOM-C.
+
+Fixed problem another problem with ZOOM_EVENT_RECV_RECORD . Bug #626.
+
+--- 2.1.24 2006/08/08
+
+Fixed MARC ISO2709 encoding routines to deal with character set 
+conversion.
+
+Minor changes to GFS logging. Database included in search request log
+line.
+
+Fixes for ZOOM-C: event ZOOM_EVENT_RECV_RECORD was not generated for
+cached/multiple records.
+
+Shared libraries are built by default on Unix+configure.
+
+Changed cql2pqf transformation to use a different evaluation order. The
+new order is: always, relation, structure, position, truncation, index
+and relationModifier. Old order was: always, relation, relationModifier,
+structure, index, position, truncation. Note that the the latter ones
+override former ones for identical attributes.. The new scheme means that
+it is possible to override any existing attribute with a relationModifier.
+And also that it is possible to override everything for the index rule
+(except the ones listed in relationModifier). No order is perfect but this
+one, we believe, covers more real cases.. The "always" should have been
+called "default", since the attributes there can be overridden with all
+the rest.
+
+For Libxml2 and friends, YAZ defines YAZ_HAVE_{XML2,XSLT,EXSLT) in the
+compilation phase, but also for yaz-config --cflags output. This allows
+us to have public headers with Libxml2 stuff in them . It should also,
+eventually, make Libxml2 checks redundant in packages using YAZ, such
+as yazproxy.
+
+--- 2.1.22 2006/06/15
+
+Changed SRU update structure bend_update_rr so that SRU diagnostics are
+stored in uri, message and details.. Previously diagnostics were stored
+in errcode, errstring. Patch by Ko van der Sloot. Breaks binary
+compatibility.. but he's probably the only one affected, so.
+
+Added support for CCL, compiled on the client side, in ZOOM-C.  This
+is invoked using ZOOM_query_ccl2rpn() with the CCL configuration as
+input; the resulting query objects can be used for for searching with
+ZOOM_connection_search() and scanning with ZOOM_connection_scan1().
+
+YAZ' configure searches for OpenSSL by default.
+
+SSL comstack uses SL_CTX_use_certificate_chain_file rather than
+SL_CTX_use_certificate_file. See
+http://lists.indexdata.dk/pipermail/yazlist/2006-June/001615.html
+for more info. Thanks to Ko van der Sloot.
+
+--- 2.1.20 2006/06/02
+
+Bug #600: SRU GET, POST support for yaz-client. Introduced
+command 'sru' which selects method SOAP/GET/POST.
+
+Allow missingValueAction to be specified for the sortspec string - 
+function yaz_sort_spec. By default, the missing value action is null.
+Use ! to specify "abort". Use = followed by stringvalue to specify default
+value.
+
+Ensured that Present-handler (if defined) is called in GFS before any call to
+fetch-hhndler.  This now includes piggy-backed presents as well as SRW/U
+searchRetrieve requests.
+
+Documentation for YAZ is now based on the Docbook XML/XSLT using
+xsltproc + N Walsh's stylesheets. It means that the CVS version of YAZ
+is no longer depending on jade/openjade or docbook-to-man scripts.
+PDF is no longer part of the distribution - but can optionally be
+made using DSSSL/jadetex or FOP.
+
+Added retrieval handling support in Generic Frontend Server to support
+conversion between MARC/XML as well as XSLTtransforms. See
+etc/yazgfs.xml for an example.
+
+Added Authentication support to Generic Frontend Server in SRU
+mode. Authentication using HTTP Basic is supported, as is the use
+of 'x-username' and 'x-password' parameters in the request itself.
+
+Added support for a new character set MARC8s identical to MARC8 except
+that it converts combined characters to single Unicode characters in the
+Latin-1 range (when possible).
+
+--- 2.1.18 2006/04/24
+
+ASN.1 compiler 0.4: generates brief Doxygen file header for 
+generated .h/.c files. 
+
+Utility yaz_iconv now supports conversion to MARC-8.
+
+New facilities for the MARC module. The reading - and writing of
+content are separate methods for the yaz_marc_t handle. The following
+read functions are available: yaz_marc_read_iso2709 (Reads MARC in
+ISO2709 format), yaz_marc_read_xml (reads MARC in MARCXML/MarcXchange
+format). Write functions have prefix yaz_marc_write_.. The existing
+utilities yaz_marc_decode_wrbuf and yaz_marc_decode_buf are still
+available. Removed support for OAI-MARC and simplexml (not the
+simplexml from PHP5).
+
+Added a new ZOOM event type ZOOM_EVENT_END which signals no more events
+to be returned for this connection.
+
+--- 2.1.16 2006/03/31
+
+Allow multiple languages and charsets to be specified with
+yaz-client. Each item must be separated by comma (NO BLANKS). E.g.
+  negcharset iso-8859-1,utf-8
+
+Translation of proximity nodes from CQL into PQF now works.
+
+Moved to automake 1.8, 1.9.
+
+Added function yaz_log_set_handler which allows a log handler to be
+installed. This handler will be called for all log messages.  Output
+to file is also produced; but that can be disabled by passing NULL
+fname to yaz_log_init_file.
+
+Fixed another problem with MARC-8 -> ISO-8859-1 conversions. Bug #537.
+
+For SRW (including GFS), accept application/soap+xml as content-type
+for SOAP msg.
+
+For GFS in SRU mode, an empty stylesheet in SRU URL (&stylesheet=&)
+produces NO stylesheet reference even if a default stylesheet is specified
+in GFS XML config.
+
+--- 2.1.14 2006/03/14 
+
+Updated Windows package to include yazd.dll + yazd.lib for the
+Development component.
+
+If the environment variable YAZ_LOG is set, then it is used as a
+string indicating the default level of logging to use if not
+overridden by calls to yaz_log_init() or yaz_log_init_level().  If
+it's not defined, then the manifest constant YLOG_DEFAULT_LEVEL is
+used as before.  So, for example, to omit warnings from YAZ logging,
+       export YAZ_LOG=-warn
+
+cql_transform() now map structure and other attributes before indexes,
+so that index-specific structures and other attributes can override
+defaults.  So now a combination of mapping specifications such as:
+       structure.* = 4=1
+       index.dc.date = 1=date-modified 4=5
+does the right thing.
+
+cql_transform() now also respects the "always" mapping specification,
+which establishes an initial set of attributes to be used for all
+terms except where overridden by more specific attributes associated
+with the index, relation or modifier.
+
+Added SRU-GET and SRU-POST support for ZOOM C. Option "sru" specifies
+which mode to use; one of "post", "get" or "soap" (SRW, default).
+
+Fixes for yaz_iconv routines: changed trie-based character set conversions
+to use only non-negative values for bit fields due to Sun's C compiler not
+supporting negative values.
+
+Fixed bug in character set conversion yaz_iconv. Some three byte UTF-8
+sequences where not read correctly. Fix by Rustam Usmanov.
+
+Updated win/makefile to use options, settings which makes things
+compile with VS C 2005.
+
+--- 2.1.12 2006/02/01 
+
+Fixed bug in yaz_oi_update which used incorrect value for categoryValue.
+
+In ZOOM socket code, use select instead of poll on MacOSX.
+
+ZOOM-C now support client-side compilation of CQL into RPN that is
+sent to the server, enabling CQL to be used against all Z39.50
+servers.  Use ZOOM_query_cql2rpn() to set the compiled CQL into a
+ZOOM_query object, and submit it using ZOOM_connection_search().
+The CQL-to-RPN translation uses a configuration file, the name of
+which must be specified in the Connection's "cqlfile" option.
+
+ZOOM-C also support CQL scanning, via the new ZOOM_connection_scan1()
+function, which takes as its start-term parameter a ZOOM_query object
+(which may have had either CQL or RPN set into it).
+
+
+--- 2.1.10 2005/11/29 
+
+Added ZiNG Update Support. New codecs are defined in srw.h. Extended the
+GFS to support this as well. Backend handler, bend_srw_update, does the
+update work. Code contributed by Ko van der Sloot.
+
+Allow retrieval of Search Result-1 information in ZOOM by the use of
+options that are attached to a result set. ZOOM documentation updated
+accordingly.
+
+Fixed bug #416: First/second comb characters not handled in the MARC-8 to
+UTF-8 conversion. Patch by Raj Patel.
+
+Added option -m to GFS to control formatting of timestamps in log file.
+
+Added 'exit' as synonym for 'quit' in yaz-client
+
+Added support for specifying SRW resultSetId + resultSetIdleTime in a
+Generic Frontend Server's search handler. Refer to include/yaz/backend.h
+for the new members. Patch by Ko van der Sloot.
+
+Added support for SRU POST. It is supported for content-type
+application/x-www-form-urlencoded only. Patch by Ko van der Sloot.
+
+Do not build the separate Multi-threaded (MT) library libyazthread.la.
+Instead make the library libyaz.la multi-threaded. Threading as a whole
+can still be disabled by configure option --disable-threads. Previosly, 
+with older GLIBCs there were problems with MT libs under Apache. This
+has now been fixed a long time ago.
+
+Fixed bugs in yaz_log that occurred on Sparc Solaris in Multi-threaded
+applications.
+
+CQL module modified to be case insensitive for relations/indexes/operations.
+
+Fixed bug in CQL transform code: incorrect value relationModifieder
+was used.
+
+Added 'show all' command for yaz-client which retrieves all results
+for last search.
+
+Added new yaz-client, xmles, which takes a (private) OID and
+a document to be sent as an extended service request.
+
+Describe new yaz-client commands wait_response and set_auto_wait.
+
+Increase TCP/IP listener backlog from 3 (which I am guessing was
+copied from the SunOS manual entry way back when) so SOMAXCONN, so
+that the socket will queue as many incoming connections as it's able
+to handle ongoing connections.  In other words, it will never now
+refuse a connection that it would be able to handle merely because
+it's not got around to accepting() enough of the pending connections
+yet.  This is the behaviour anyway under Linux, where the listen()
+argument is ignored; but not under BSD and on systems such as
+MS-Windows that use BSD-derived TCP/IP stacks.  The behaviour of
+YAZ-based servers should now be uniform across operating systems in
+this respect.
+
+yaz-marcdump uses 64-bit file access on some systems. This is enabled 
+on Linux and other Unix variants where _FILE_OFSET_BITS=64 is supported.
+This allows yaz-marcdump to read large MARC batches (>2 GB).
+
+Modified all YAZ source files - except the source which is auto-generated
+by tools - to use spaces rather than TABS. Emacs/VIM trailer added to
+all source files.
+
+Add ZOOM_connection_option_getl() and ZOOM_options_getl(),
+corresponding to the existing *_setl() function.  These allow option
+values containing arbitrary valuues.
+
+Add ZOOM_resultset_sort1(), which should ALWAYS be used in place of
+ZOOM_resultset_sort() in new applications.  Its behaviour is identical
+except that it returns an indicator of whether or not the sort
+criterion was accepted (0 for OK, -1 for invalid).
 
 --- 2.1.8 2005/06/07