Fix date
[yaz-moved-to-github.git] / NEWS
diff --git a/NEWS b/NEWS
index 632972a..aef1a76 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,632 @@
+--- 4.2.33 2012/05/09
+
+New function for daemon utility, yaz_daemon_stop .
+
+Makes yaz_srw_sortkeys_to_sort_spec public on Windows.
+
+--- 4.2.32 2012/04/25
+
+Add some Bib-1/SRU diagnostics + mappings. Bib-1: 1073 and
+Bib-1 1074: Proxy failure. SRU: 1074: Proxy failure
+
+--- 4.2.31 2012/04/23
+
+YAZ daemon utility relays SIGUSR1 to child process.
+
+ZOOM: handle trailing slash for Z39.50 urls. Previously localhost:9999/
+would result in en empty database list - which in turn would result in
+encoding failure for search.
+
+Fix reading beyond string in yaz_sort_spec.
+
+--- 4.2.30 2012/04/11
+
+Add two new SRU diagnostics:
+ 236: Access to specified database denied
+ 1015: Init/AC: Maximum number of simultaneous sessions for Userid
+
+Document the very useful ZOOM-C option "apdulog".
+
+CQL to RPN: term may be passed through verbatim. This is enabled with
+truncation.cql . The assumption being that the term is already CQL.
+
+--- 4.2.29 2012/03/20
+
+record_conv: leader spec may be given for marc element.
+The leader spec is given as attribute leaderspec for element marc. 
+For example to convert a MARC21 record from MARC-8 to UTF-8:
+     <marc inputformat="marc" outputformat="marc"
+      inputcharset="marc-8" outputcharset="utf-8 "leaderspec="9='a'"/>
+
+record_conv: allow user-XSLT params. For example:
+       <xslt stylesheet="MARC21slim2DC.xsl">
+          <param name="myparameter" value="myvalue"/>
+          <param name="otherparameter" value="othervalue"/>
+       </xslt>
+
+record_conv: fix error handling for missing marc charsets.
+
+CQL: fix extra terms in wrong order.
+
+--- 4.2.28 2012/03/06
+
+record_conv: modify new API for conversion types. The conversion types
+may be passed in new functions yaz_record_conv_configure_t and
+yaz_retrieval_configure_t.  Removing yaz_record_conv_add_type .
+
+Avoid mixed statement/variable declare; fixes compilation with Visual
+Studio.
+
+--- 4.2.27 2012/02/28
+
+Add non-standard SRU diagnostic: 235: "Database does not exist".
+Couldn't live without it. HTTP 404: "Not found" is just so anonymous.
+Update SRU to Bib-1 diagnostic maps accordingly.
+
+CCL: add two new diagnostics for unsupported masking. The new
+diagnostics are: "Embedded truncation not supported" and
+"Single charcacter mask not supported".  
+
+--- 4.2.26 2012/02/23
+
+CCL: fix use of "term" field in sub queries. Bug introduced in YAZ 4.2.25.
+
+--- 4.2.25 2012/01/11
+
+Build YAZ for Ubuntu Oneiric.
+
+CCL: allow parantheses for proximity operands. For example CCL query
+(a) % (b)   is now allowed.
+
+GFS: fix bend_assoc_is_alive. When cs_get returns 0 the association is
+marked dead, rather then being destroyed. If not, the session memory is
+being free'd before the search/scan handler is finished. Also destroy
+'request' memory in request_release rather than in various places,
+which resulted in leaks from time to time.
+
+--- 4.2.24 2011/12/21
+
+cql_sortby_to_sortkeys: honor sort prefix.
+
+RPN to CQL: always quote resulting terms. For bizarre reasons, JSTOR's
+SRU server returns 0 hits on ISSN searches unless a CQL term is quoted.
+The rpn2cql family of functions now always returns quoted CQL terms.
+
+Fix CQL to CCL conversion for multiple terms. Add two test cases as well.
+
+--- 4.2.23 2011/12/15
+
+Allow =val to be omitted for yaz_uri_to_array. Also, multiple &'s in
+sequence is treated as one. For example, &&a=b&&&c& is identical to
+a=b&c= .
+
+--- 4.2.22 2011/12/05
+
+Add ZOOM_connection_save_apdu_wrbuf. This function may be used to save
+APDUs for a connection to a WRBUF.
+
+--- 4.2.21 2011/11/23
+
+Fix cql_sortby_to_sortkeys. Completely broken before.
+
+Make CCL's @truncation work again.
+
+--- 4.2.20 2011/11/09
+
+New ZOOM connection setting: tproxy.  It's like proxy, but does not
+set Z39.50 proxy OID or change HTTP for proxy behavior. Can be used
+to set resolved address + port for a connection outside ZOOM itself.
+
+Fix atoi_n_check digit test. Thanks to Giannis Kosmas for spotting it.
+
+--- 4.2.19 2011/11/07
+
+Fix uninitialized variable in Solr spell support (could cause SEGV
+for SRU response decoding).
+
+Error handling for Z_APDU_close uses ZOOM_set_dset_error() to pass
+back-end's addinfo through into the ZOOM response addinfo.
+
+When ZOOM_set_dset_error() is passed an addinfo2 as well as addinfo,
+they are separated by a colon and a space rather than simply
+concatenated.
+
+--- 4.2.18 2011/10/28
+
+Add support for Solr spell-checking/suggestions through ZOOM.
+If a Solr target has been configured correctly for spelling-checking 
+and suggestions, these will now be returned on the ResultSet option 
+"suggestions". zoomsh has been extended to show this with the cmd suggestions.
+
+--- 4.2.17 2011/09/28
+
+Fix function nmem_strsplit_escape2 which extends nmem_strsplit_escape
+with a flag whether to substitute escape sequences or not.
+
+--- 4.2.16 2011/09/22
+
+Fix nmem_strsplit_escape to substitute escape char properly.
+
+New option for zoomsh  -e , which makes it abort on first error and
+return process exit code to indicate success/failure.
+
+YAZ options utility supports special option -- which makes all it treat
+all following arguments as non-options.
+
+--- 4.2.15 2011/09/16
+
+Fix yaz_file_path_resolve/yaz_path_fopen/yaz_fopen so that path is not
+searched if absolute filename is given.
+
+Fix conv_xslt() error-reporting when stylesheet is not found.
+(The value of fullpath is meaningless in this situation.)
+
+--- 4.2.14 2011/09/07
+
+Fix problem in CQL sort node creation: un-initialized memory.
+
+New ZOOM utility ZOOM_query_sortby2. That takes a strategy parameter: one of
+"z3950", "type7", "cql", "sru11" or "embed". The "embed" chooses type-7 or
+CQL sortby depending on whether Type-1 or CQL is actually sent to the
+target.
+
+New sortspec utilities: yaz_srw_sortkeys_to_sort_spec,
+yaz_sort_spec_to_srw_sortkeys, yaz_sort_spec_to_type and 7yaz_sort_spec_to_cql.
+
+rpn2solr supports Z39.58 truncation (104). Thus, CCL truncation mode t=z
+will make it possible to use both single-character mask (#) and wildcard (?)
+in CCL . Throw diagnostic for left truncation because that is not supported
+by SOLR.
+
+--- 4.2.13 2011/09/01
+
+Fixes for cql2rpn, cql2ccl and ccl2rpn; mostly in the area of special
+cases using escapes (\-sequences) and masking.
+
+PQF parse fix: A trailing backslash followed by end-of-string (\0)
+would result in a read one byte beyond string.
+
+rpn2ccl may use Z39.50 masking for terms (t=z).
+
+ICU check fix. Don't include library -lCrun on Solaris, unless present.
+
+ICU check fix: Use --cppflags-searchpath to determine ICU include files;
+not --cppflags (which seeems like an error in icu-config).
+
+--- 4.2.12 2011/08/27 RPM package only
+
+cql2ccl: fix conversion of terms: operator characters were not
+quoted/escaped.
+
+--- 4.2.11 2011/08/25 RPM package only
+
+ccl2rpn: Conversion to regexp-1 terms (trunc=102). For mode t=x, the
+CCL parser will map both # and ? to their regular expression
+quivalents (. and .*).
+
+rpn2cql: deal with truncation=102 (regexp-1). And ensure proper quoting
+of reserved CQL characters.
+
+cql2ccl: deal with both * and ? in conversion. Also leave escaped ones as
+is, so that they are passed through.
+
+--- 4.2.10 2011/08/24
+
+ZOOM SRU mode: more aggressive re-connect.
+
+Private function prox_unit_name() renamed to yaz_prox_unit_name() and
+made available as a utility function, declared in <yaz/logrpn.h>
+
+rpn2cql_structure() supports proximity nodes (except that the Type-1
+proximity node's "exclusion" binary is ignored, as there is no way to
+express that in CQL).  Fixes bug #4564.
+
+--- 4.2.9 2011/08/18
+
+Fix SEGV that could occur if set command of zoomsh was given without
+value (2nd argument).
+
+Fix SEGV that could occur if unsupported transport was given for
+COMSTACK - say https (when SSL was unavailable).
+
+Build yaz-url on Windows too.
+
+--- 4.2.8 2011/08/11
+
+New utility to get web content. Header is url.h. A command line tool
+yaz-url is part of the distribution and packages.
+
+Fixes for SSL COMSTACK (when gnutls is in use).
+
+New functions yaz_base64{encode,decode}. Header is base64.h.
+
+--- 4.2.7 2011/08/03
+
+ZOOM C includes HTTP response buffer as additional info if it fails
+to decode the SRU response.
+
+Make wrbuf_json_puts available.
+
+--- 4.2.6 2011/07/28
+
+zoom: throw diagnostic for invalid value for option "sru". Before a
+bad SRU request was sent.
+
+Adding new utility wrbuf_vp_puts.
+
+Add cclxmlconfig.obj to win/makefile. It was missing completely.
+
+--- 4.2.5 2011/07/21
+
+ZOOM HTTP: use absoluteURI's in proxy mode as required by RFC 2616 (HTTP).
+Fix a bug in handling of cookies. Fix a bug that would occur if proxy +
+redirect was used at the same time.
+
+MARC line mode decoding: be less picky about length given - first
+5 digits of header that is.
+
+CQL to CCL conversion: deal with CQL proximity (cql_to_ccl function).
+
+Changes to decoding of SRU records: a record with recordPacking=xml is
+modified with a new root element <yaz_record> if the recordData contains
+multiple children elements. This is to make the record XML parseable
+afterwards.
+
+RPN to SOLR conversion: encode special characters.
+
+Generic Frontend Server: fix uinitialized member, stepSize.
+
+--- 4.2.4 2011/06/21
+
+Fix a bug in SRU decoding of records.. The database records stored
+had un-initialized memory, but it would only be seen with yaz_record_render
+and type_spec="ext" .
+
+Fix a bug in ccl_qual_dup introduced in 4.2.3.
+
+--- 4.2.3 2011/06/17
+
+Add new CCL utility, ccl_qual_dup, which makes a copy of a CCL bibset.
+
+--- 4.2.2 2011/06/10
+
+Add new utilities to convert from CQL to CCL . These utilities have
+prefix cql_to_ccl defined in cql.h.
+
+Defensive coding for an off-by-one bug in ucol_getSortKey. This could
+lead to memory heap corruptions when ICU utilities were in use.
+
+--- 4.2.1 2011/06/07
+
+Make compilation work without Libxml2.
+
+yaz-client: remove redundant blanks in display of searchResult-1 term
+hit counts.
+
+--- 4.2.0 2011/05/18
+
+CQL: parse CQL sortby spec. The resulting sort spec is stored in the
+resulting CQL node (tree) in a new node CQL_NODE_SORT.
+
+CQL and GFS: add utility cql_sortby_to_sortkeys which converts CQL sortby
+1.2 node tree to CQL 1.1 spec. This in turn allows the generic frontend
+server to only consider srw_sortkeys and support both SRU 1.1 and 1.2.
+Note that the CQL sortby spec is only converted when the GFS is already
+converting from CQL to RPN (cql2rpn element).
+
+New function nmem_strsplitx. This is like nmem_strsplit but allows us to
+specify whether to collapse delimitors or not. The existing nmem_strsplit
+do collapse (collapse parameter = 1).
+
+Windows installer: For NSIS, set InstallDir depending on x86/x64.
+
+Rename internal func yaz_use_attribute_create. While non-static, this
+function is not declared in a public header.
+
+--- 4.1.7 2011/03/15
+
+Add -lCrun when linking with ICU on Solaris.
+
+More quicks character set conversions for OPAC records.
+
+--- 4.1.6 2011/03/10
+
+fix problem with record_render: records were converted (character set
+wise) even if no charset was given. Problem introduced in YAZ 4.1.5.
+
+--- 4.1.5 2011/03/08
+
+SRU: add methods for handling DADS SRU-proxy facets.
+
+Separate OPAC record character set for ZOOM_record. yaz_record_render
+allows a character set given as charset=from/opacfrom,to where 'from' is
+the character set of a bibliographic record, 'opacfrom' is character set
+of OPAC record and 'to' is the target character set.
+
+--- 4.1.4 2011/02/21
+
+yaz-client: show may XML format records. Command show followed by 'format'
+will format XML records retrieved using Libxml2's xmlDocDumpFormatMemory
+function.
+
+src/stemmer.c: Avoid using unnamed union. It is not supported by some
+older C compilers.
+
+For PHPYAZ: set YAZVERSION, not YAZ_VERSION.
+
+--- 4.1.3 2011/01/27
+Update yaz.spec to operate on both SLES11 / Centos 5.5.
+
+RPM: Release includes 'indexdata' name. Use indexdata in release name so
+this package can be distinguished from other vendors.
+
+yaz-config: Use exec_prefix, libdir, includedir .  Use these variables
+as determined by configure
+
+yaz-config: set YAZ_VERSION env. php_yaz relies on it.
+
+GFS: Z_PresentStatus_partial_4 for missing record. If bend_fetch handler
+returns no error and no record, the present request is considered
+partial (only a subset of the records could be returned by backend), and
+so it is appropriate to set Present Status to partial-4.
+
+--- 4.1.2 2010/11/02
+
+Move yaz-config man pages to section 1.
+
+More documentation about SOLR.
+
+tcp comstack: change behavior for @-specs (anyaddr). @ listens on
+AF_INET (IPV4) peers, and @6 listens to AF_INET6 (ipv6) peers.
+Previously @ listened on AF_INET6 which accepted both IPV4 and IPV6
+peers on some Linux systems. However, in general that does not work
+so YAZ can not rely on that to work. Debian changed behavior in this
+respect from Debian lenny to Debian squeeze (still testing as of Oct
+2010). Refer to:
+http://www.mail-archive.com/debian-devel@lists.debian.org/msg277726.html
+
+zoomsh: remove "debugging" output. Was added by mistake in 4.1.0.
+
+--- 4.1.1 2010/10/05
+
+Fix yaz-config output: echo_source not set correctly by configure.
+
+--- 4.1.0 2010/10/05
+
+SOLR WebService support for yaz-client and ZOOM.
+
+Define record syntax JSON. OID: 1.2.840.10003.5.1000.81.3 .
+
+--- 4.0.12 2010/08/17
+
+Z39.50 facet support. Facet specifications are passed for search in
+other-information with ASN.1 as defined in facet.asn and OID
+.10.1000.81.5 . Facets are expressed as an Attribute list as known
+from Type-1/RPN queries.  Type 1 is field. Type 2 is sort order. Type
+3 is limit (number of entries to get in response). yaz-ztest returns
+dummy facets if a client asks for them.
+
+--- 4.0.11 2010/07/09
+
+CCL fixes: bug 2895 and bug 3539.
+
+GR1-display: add comma in display - was removed by mistake in
+version 4.0.0.
+
+Windows installer: bundle MSVCP90.dll - used by icuuc42.dll.
+
+SRU: Merge cookies on HTTP redirects (Giannis Kosmas <kosmas@lib.uoc.gr>).
+
+--- 4.0.10 2010/06/18
+
+ZOOM C: Add ZOOM_resultset_release. ZOOM_resultset_release releases a
+result set from a connection. The result set will be on its own
+thereafter; no operations on it will perform retrievals from a target.
+Only cached copies are returned.
+
+ZOOM C:fix case for HTTP servers responding with Connection:close.
+Ensure that if there is a current task it is resumed (like fetching
+more records in a result set) . Bug #3484.
+
+PQF parser: use odr_atoi for Odr_int (not atoi)
+
+Minor PQF encoding and decoding changes; reformat. PQF decoding: attribute
+values that contain any non-digits are treated as string attributes
+(previously decoding only checked for leading character ([0-9]). PQF
+encoding: attribute string values are not surrounded by double-quotes.
+
+--- 4.0.9 2010/05/21
+
+New utility for managing threads - thread_create.h.
+
+Add socket pipe utility - spipe.h. The socket pipe has same purpose as
+Unix pipe . Unfortunately Windows pipes do not work on select/poll -
+but YAZ' implementation do.
+
+Fixes for yaz_cond-functions on Windows 7.
+
+DLL export more symbols.
+
+zoomsh: show record do NOT render opac.
+
+Remove *.la files from Debian and RPM packages.
+
+--- 4.0.8 2010/05/11
+
+Debian package libyaz-dev depends on libgnutls-dev again (was
+removed in YAZ 4.0.6, but due to Libtool it is still needed
+even though yaz-config do not list libgnutls libs).
+
+ZOOM: Use only one WRBUF for returning string results for
+ZOOM_resultset. Reduces memory usage for ZOOM in general.
+
+ZOOM: ZOOM_connection do not use a shared pointer to
+ZOOM_resultset after ZOOM_resultset is destructed by
+user. Reverts to YAZ 4.0.4 behavior.
+
+--- 4.0.7 2010/05/04
+
+record-conv: fix problem with at least one XSL conversion -
+due to probably incorrect usage of XML XSL documents.
+
+--- 4.0.6 2010/04/29
+
+Fix yaz-config for static mode and the use of SSL (gnutls).
+
+--- 4.0.5 2010/04/29
+
+Forward decl timeval struct in mutex.h and gettimeofday.h.
+
+yaz-config: fix 'static' mode linking.
+
+--- 4.0.4 2010/04/28
+
+Add functions yaz_cond_{create,destroy,wait,signal,broadcast}. These
+are wrappers for pthreads or Windows. For Windows these are put in
+a separate DLL: yaz_cond4.
+
+libyaz.la (whole source) is compiled with thread. If thread support
+is enabled enabled, all source of YAZ is compiled with treading support.
+This allows core utilities such as yaz_log to use thread facilities.
+Previously (YAZ 3 and YAZ 4 releases), only libyaz_server.la was using
+thread utilities. This commit moves mutex utilities (mutex.c) from
+libyaz_server.la to libyaz.la.
+
+yaz-json-parse displays leading text until error.
+
+--- 4.0.3 2010/04/09
+
+Handle HTTP redirect for SRU GET in yaz-client and ZOOM C. Based on
+patch from Giannis Kosmas.
+
+SRU: no longer URL encode SRU database. The URL for an SRU server is
+a URL and such is alreeady encoded - at least when given with leading
+http:// or https://. This reverts behavior to YAZ 3.0.50.
+
+Support for new MARC XML notation TurboMARC which like MARCXML is a
+complete representation of MARC/ISO2709.. This one, however, is more
+compact and allows for faster processing with XSLT. TurboMARC can be
+used in the marcdisp.h API, from the yaz-marcdump utility and from
+the API of ZOOM C.
+
+yaz-ztest can be configured - via the database - to perform certain
+delays when it performs operations search, present and single record
+fetch. This allows testers to make yaz-ztest act as a real or even slow
+Z39.50 server. Refer to the yaz-ztest man pages for details.
+
+--- 4.0.2 2010/03/09
+
+wrbuf_destroy allows NULL WRBUF passed to it.
+
+Fix CCL qualifier aliases (did not work since YAZ 2.1.56).
+
+Add ZOOM_connection_close.
+
+No fixed size buffers for ZOOM shell - bug #3257.
+
+tstodr: make it work on s390 platform.
+
+New icu iterator-functions. The new icu_iter-functions makes it possible
+to use ICU chains from many threads.
+
+yaz-client: better syntax check for show command.
+
+--- 4.0.1 2010/01/26
+
+New glob file pattern utility. Like POSIX glob. For Windows too. Refer to
+yaz/file_glob.h.
+
+New simple local-file XML include facility which allows file glob-patterns.
+Refer to yaz/xml_include.h.
+
+Utility yaz-json-parse which parses JSON and demonstrates the JSON parser
+API.
+
+ZOOM_record_get supports new parameter "format" which makes it format XML
+record content.
+
+Fix JSON parser WRT start symbol. The start grammar symbol (referred to as
+JSONText in ECMA-262) is JSONValue, not JSONObject.
+
+--- 4.0.0 2010/01/20
+
+Windows binaries for YAZ now compiled with Visual Studio 2008 (VC9).
+Older versions of YAZ was compiled with Visual Studio 6.0 (1998).
+
+Update so/DLL to version 4. Windows version builds YAZ4.DLL.
+POSIX/Unix builds .so with major version 4.
+
+Remove old LOG_-defines from log.h. They have been obsolete and
+undefined by default for the last 5 years.
+
+Odr_int is now of type 'long long'. Used to be 'int' in YAZ 3 series.
+
+GFS: Remove socket (int *fd) from search_rr handler. The socket
+descriptor ptr is a facility that allowed a search handler to supply
+a socket which would serve as a callback - when search was complete.
+This facility has now been in use for years.
+
+COMSTACK API changes: cs_stackerr, cs_addrstr. COMSTACK method cs_stackerr
+removed. It is not implemented by tcpip or unix COMSTACK, perhaps for ISO
+SR which was removed 7 years ago. COMSTACK macro / method cs_addrstr now
+returns 'const char *' rather than 'char *. The returned string is
+read-only and should not be modified by applications. COMSTACK cs_close is
+now a void function - it no longer returns int. No applications check for
+the value and the implementations has always returned 0.
+
+ZOOM: use size_t for scan hit counts and str size. Functions
+ZOOM_scanset_term and ZOOM_scanset_display_term have changed, so that
+occ (hit count) and len (string length) are now of type size_t pointer
+rather than int pointer. This is to be able to represent large hit counts
+and to also just to use the proper type for string length (strlen result).
+
+New JSON parser. Refer to include/yaz/json.h .
+
+WRBUF API changes.. For size parameters for WRBUF size_t is now used ..
+Used to be int in some cases. Many wrbuf_-functions used to return an int
+indicating some length.. These return values were never used. And so they
+are now void.
+
+ODR: odr_malloc, odr_total now takes size_t for size.
+
+clone_z_type: fix leak; occurred for encoding failures.
+
+--- 3.0.52 2009/12/03
+
+tcpip comstack: fix use of uinitialized variable in cs_straddr. This
+bug was introduced in 3.0.51.
+
+--- 3.0.51 2009/12/02
+
+tcpip comstack: Remove TCP receiver buffer optimizations for Solaris.
+
+tcpip comstack: fix leak for getaddrinfo.
+
+Encoding of SRU database is performed by yaz_encode_sru_dbpath_odr or
+yaz_encode_sru_dbpath_buf. Now used by yaz-client and the ZOOM API.
+Decoding of SRU "path" database is performed by private function
+yaz_decode_sru_dbpath_odr . This in turn is used by yaz_srw_decode
+and yaz_sru_decode in server applications, GFS, yazproxy, metaproxy.
+
+yaz-client: honor base command for SRU. Change when database setting
+is applied for SRU and ensure it is kept when a connection is reset.
+Change also the way errors are displayed or SRU (decoding of packages).
+
+--- 3.0.50 2009/11/02
+
+Add support for extra request / response data for SRU codecs and GFS.
+The Z_SRW_PDU structure has two new members extraResponseData_{buf,len}
+for extra data response buffer and length. For the GFS, both request
+and response data (XML) is carried in extra_args and extra_response_data
+for the search handler. Patch by Ko van der Sloot.
+
+ZOOM: For queries that cannot be converted to the specified rpnCharset,
+ZOOM now returns a diagnostic on the client-side ('invalid query' /
+10010).  This fixes bug #2113.
+
+yaz-client fix: If cmdfile is passed to yaz-client (option -f) and that
+cmdfile included a 'quit' command that would result in a memory violation.
+
 --- 3.0.49 2009/10/01
 
 Make a number of functions defined in xmlquery.c static. These have