Fix: Setting env YAZ_LOG makes YAZ hang YAZ-745
[yaz-moved-to-github.git] / NEWS
diff --git a/NEWS b/NEWS
index 891ed3e..15ce8ea 100644 (file)
--- a/NEWS
+++ b/NEWS
+--- 5.0.16 2014/02/25
+
+tcpip/SSL COMSTACK: connect tries all getaddrinfo addresses YAZ-743
+
+--- 5.0.15 2014/02/24
+
+Fix gcrypt not properly initialized YAZ-740.
+
+--- 5.0.14 2014/02/19
+
+Describe memcached option for ZOOM.
+
+ZOOM: throw present request out of range again YAZ-739
+Was removed in YAZ 5.0.13.
+
+--- 5.0.13 2014/02/18
+
+yaz_log MUTEX protected and pthread_atfork is used to avoid dead-lock
+with localtime_r when threads + fork is used (such as Metaproxy).
+
+yaz-config: quote some RHS values (that might include blanks)
+
+zoomsh: shows SearchResult-1
+
+zoomsh: sortby command
+
+zoomsh: use proper list of connections and result sets YAZ-725
+
+Avoid yaz_log in sigterm handler for GFS YAZ-737
+Logging is still performed, but outside sig handler.
+
+New ZOOM C feature: result-set caching with memcached. Example:
+ zoomsh "set memcached --server=memcachehost" "connect zurl" "search query"
+
+Remove SSL via OpenSSL support YAZ-732
+Also deprecate two functions from comstack that aren't working with
+GnuTLS: cs_get_ssl, cs_set_ssl_ctx.
+
+Revert "Bison: use %name-prefix directive rather than -p option"
+
+--- 5.0.12 2014/01/22
+
+Prefix URL with http:// if sru setting hints SRU/Solr mode YAZ-731
+
+SRU GET/Solr base URLs may hold additional ?args YAZ-729
+ZOOM option extraArgs already does this, though. It seems useful
+when dealing with Solr targets to limit by filter, eg.
+   http://lui.indexdata.com:8080/solr4/select?fq=database:3902
+
+Remove #fragment for HTTP request encoding YAZ-730
+
+Doc: Update list of DLLs/LIBs
+
+Doc: update href link to Unix utils and Git.
+
+--- 5.0.11 2014/01/15
+
+ZOOM: fix "lost connection" problem with servers that uses both squid
+and another proxy behind it that returns Location headers with relative
+URIs. YAZ-724
+
+zoomsh: do not use readline for stdin (no tty) YAZ-724
+Just use fgets in that case. If the user hits Ctrl-D a new-line
+is also printed.
+
+zoomsh: empty command ignored YAZ-723
+rather than performing exit of zoomsh.
+
+yaz-url utility offers option -v to enable verbose mode.
+
+yaz_url uses yaz_check_location and offers verbose mode.
+
+Add new function yaz_check_location.
+This function gets an absolute URI from Location (HTTP redirect).
+
+cookie API: introduce yaz_cookies_reset
+
+Update cql.y for newer bison YAZ-720
+The important part is that YYLEX_PARAM and YYPARSE_PARAM are no
+longer supported. Instead one must use %lex-param and %parse-param .
+
+--- 5.0.10 2014/01/09
+
+ZOOM/yaz-client: Cookie handling; deal with relative URI in Location
+header. YAZ-719
+
+rpn2solr: support truncation left(2), left&right(3) YAZ-718
+
+Mention SRU version 2.0 in yaz-client man page.
+
+--- 5.0.9 2013/12/20
+
+ZOOM/yaz-client: allow SRU searchRetrieveResponse with incorrect
+namespace.
+
+--- 5.0.8 2013/12/20
+
+Make cs_parse_host public.A
+
+Fix double HTTP dump (-a log would show HTTP packages twice). Bug
+introduced in YAZ 5.0.6.
+
+--- 5.0.7 2013/12/17
+
+Fix buffer corruption for yaz-ztest record fetch.
+
+--- 5.0.6 2013/12/17
+
+Allow yaz-ztest to return user-defined records (one record per file).
+This is enabled by defining environment variable YAZ_ZTEST_XML_FETCH.
+
+Prevent early truncatin of HTTP log. (ODR_PRINT for HTTP streams).
+Use the stream write instead of odr_printf which has a 4K tmp buffer.
+
+Fix encoding of 0x00a4 (unicode to danmarc) YAZ-713
+
+--- 5.0.5 2013/12/09
+
+Add support for MARC-in-JSON. yaz-marcdump and the record conversion module
+can read and write this format. For record format JSON, yaz-ztest returns
+MARC-in-JSON records.
+
+iconv: fixes and more tests for danmarc character set encoding. 0xa733 is
+converted to @å , 0xa732 is converted to @Å instead of @a733, @a732 .
+
+--- 5.0.4 2013/11/22
+
+Improve error reporting for ICU chains YAZ-707
+Report config element+rule when ICU status is "failure".
+
+ZOOM: stop fetching if present response has no records YAZ-710
+Some targets return less records than their hit count would suggest.
+This prevents ZOOM from continuing to fetch records if any present
+response has 0 records in the response.
+
+Ensure that GFS calls exit if any listener fails YAZ-710
+Before, if XML config was in use, it would start the default
+listener @:9999!
+
+--- 5.0.3 2013/11/19
+
+yaz-ztest: -V shows version (like yaz-client -V)
+
+New iconv encoding: danmarc YAZ-692
+
+yaz-client: lslb, ssub, mspn are Odr_ints now YAZ-705
+
+daemon: only wait for immediate child rather than all children. YAZ-704
+
+yaz-client: fix setting of SRU record schema. If scheme was unset, it
+could lead to invalid memory reference.
+
+--- 5.0.2 2013/10/16
+
+yaz-ztest returns schema for MARCXML test records. SRU require that
+recordSchema for records.
+
+GFS: make surrogate diagnostic when yaz_record_conv_record fails -
+instead of non-surrogate diagnostic. This is a per-record failure.
+
+GFS: Allow multiple listenrefs YAZ-554. A server in yazgfs configuration
+may refer to multiple listeners now. Attribute listenref is a comma separated
+list of listen IDs.
+
+GFS: Use xmlconfig path as prefix for fnames YAZ-702. When -f
+option is given for GFS, the dirname of filename (for -f) is used
+as prefix for options such as cql2rpn, ccl2rpn, etc.
+
+Content-Type charset fixes YAZ-701 . Do not inspect charset in
+Content-Type header for SOAP when decoding SRU. The payload (XML)
+itself tells what encoding it is. In response, never supply encoding
+in Content-Type. The response payload (XML) tells what it is (with no
+encoding in XML it's UTF-8).
+
+HTTP decoding: allow blanks in URL paths YAZ-700
+
+--- 5.0.1 2013/10/04
+
+Various fixes for how SRU 2.0 is encoded. Fix NS for SRU 2.0 diagnostics
+and facets. Ensure recordData and recordSchema are always present in
+record element, because they are required.
+
+Remove deprecated functions yaz_uri_val .. and yaz_uri_val_int. Never used
+outside YAZ.
+
+Simplify in a lot of places using odr_strdupn.
+
+odr_create_Odr_oct: null terminate the buffer. Some applications rely on it.
+
+--- 5.0.0 2013/10/01
+
+Increase various buffers in GFS's statserv_options_block
+Change many 'unsigned char *' to 'char *' for ODR-related utilties.
+This change makes many type-casts redundant, and, thus simplifies code.
+
+Remove last bits of WAIS support.
+
+Remove member 'size' from Odr_oct.
+
+Slim down the public part of 'struct odr'. Most elements are not part
+of struct Odr_private.
+
+Add support for SRU 2.0. Since SRU 2.0 is incompatible with earlier
+versions of SRU, yaz-client and zoom C are using SRU 1.2 by default.
+In particular facets are supported in both client - and server side.
+Facets are also supported for Z39.50 and is carried in additionalSearchInfo
+of searchRequest/searchResponse with OID 1.2.840.10003.10.1000.81.5 AKA
+"Facet-1" in oid.csv. The info is defined in facet.asn (which covers
+both request/response). This is what a search handler in the GFS
+will see (regardless of whether operating in SRU mode or Z39.50).
+
+Changes to the srw.h (SRU/Solr) definitions include:
+- New element in Z_SRW_searchRetrieveRequest, queryType (char*) and query
+(char*), which replace union query and query_type (int).  This is because
+SRU 2.0 supports a queryType parameter. This also means that, to carry
+PQF, in SRU we can now use queryType=pqf and query=PQFstring , rather than
+x-pquery=PQFstring (extention parameter). The extension parameter
+is still supported.
+- New element, packing, that has information about SRU
+2.0 recordPacking (not to be confused with SRU 2.0 recordXMLEscaping).
+
+New element in Z_SRW_searchRetrieveResponse, resultCountPrecision.
+
+New element, packing, in Z_SRW_explainRequest.
+
+New elements in Z_SRW_scanRequest, queryType and scanClause.
+These replace query_type and scanClase untion. This is similar to what
+happend to search.
+
+--- 4.2.69 2013/10/01
+
+GFS: log when closing down - at least SIGTERM YAZ-684
+Also change formatting WRT PID logging a bit.
+
+Improve display of MARC records with multi-byte subfield IDs YAZ-695
+In some rare cases subfield identifiers are multi-byte characters.
+This will try to deterime length of those and split accordingly.
+This affects display in line mode as MARCXML/MarcXchange. The encoding
+of ISO2709 is the same.
+
+Change inp argument to const for yaz_read_UTF8_char.
+
+yaz-marcdump: fix leaks for MARCXML parsing. YAZ-694
+
+MARCXML parsing: avoid skipping 1st field if no leader. YAZ-693
+
+Better check of marc leader info YAZ-691
+Problem is that some systems generate MARCXML/MarcXchange with
+funny headers. These will not work if encoded as ISO2709.
+Some tests produce new output, due to updated warning messages
+
+cql2pqf: allow PQF queries from stdin (because CQL is also allowed)
+
+yaz-client: display MAB records YAZ-689.
+Thanks for Heiko Jansen for this patch.
+
+New utility z_get_HTTP_Response_server which allows both HTTP server name
+and HTTP server URL to be given in response.
+
+Debian: do not depend on obs tcl8.3.
+
+Debian: do not depend on obs libicu36-dev.
+
+--- 4.2.68 2013/09/23 
+
+GFS: pass additionalSearchInfo to search memeber search_input if
+given. Otherwise pass otherInfo. Request for facets and other search
+related things will be passed there in future versions of YAZ.
+
+New ZOOM setting, authenticationMode, which allows authentication
+paramters to be encoded in the URL rather than via HTTP Basic auth.
+YAZ-686
+
+rpn2solr: fix nested AND/OR handling. YAZ-685
+
+Add comparison routines for some Z-types, such as NamePlusRecord,
+RPNQuery, Query, RecordComposition and OtherInformation.
+
+--- 4.2.67 2013/09/19 
+
+Don't decode MAB as MARC. Just like we don't attempt to decode
+HTML/XML as MARC. Fixes MAB display problem that was introduced in 4.2.64.
+
+CCL: allow quoted terms for date ranges. YAZ-681
+
+Introduce ccl_parser_qual_search. This function makes old function
+ccl_qual_search, from YAZ 2, available again.
+
+Add yaz_facet_list_to_wrbuf. YAZ-683
+
+--- 4.2.66 2013/09/11
+
+ZOOM: fix record handling for Solr. ZOOM_record_get would return 0, if
+schema was given for search. YAZ-675
+
+Add Solr date range searches. YAZ-621
+
+--- 4.2.65 2013/08/22
+
+ZOOM: another fix for record caching (introduced in YAZ 4.2.64).
+
+--- 4.2.64 2013/08/21 (Broken WRT ZOOM C, do not use)
+
+ISO2709/MARC parse most octet aligned records; not just those that
+are known to be ISO2709/MARC. This makes ZOOM and yaz-client
+MARC parse more records instead of just dumping as is. YAZ-670
+
+ZOOM: proper caching for variations of record schema. YAZ-671
+
+Solr: Check for enging / and perhaps commands (select/term) YAZ-651
+
+--- 4.2.63 2013/07/17
+
+Add yaz_strcmp_null
+
+--- 4.2.62 2013/07/11
+
+New utility z_get_HTTP_Response_details - an extended version of
+z_get_HTTP_Response.
+
+New utility yaz_url_get_error which returns error message of last
+failed yaz_url_exec call.
+
+yaz-url and url functions: allow max HTTP redirects to be controlled.
+
+New functions yaz_file_glob2, yaz_xml_include_glob.
+These functions takes a flags parameter, which, for now only controls
+whether to fail inclusion of a non-existing file (without glob
+pattern) - flags YAZ_FILE_GLOB_FAIL_NOTEXIST.
+
+--- 4.2.61 2013/06/20
+
+For MARC XML parsing, allow record without leader. A fake/default leader
+is inserted and a warning is tagged with the record.
+
+ICU: fix leak in in icu_iter_get_org_info.
+
+--- 4.2.60 2013/06/14
+
+ICU: fix bug in icu_iter_get_org_info (un-init variable).
+
+--- 4.2.59 2013/06/11
+
+Implement z_HTTP_header_remove.
+
+--- 4.2.58 2013/06/11
+
+ICU: Disallow 0 ptrs for some ICU string utilities.
+
+ICU: new utilities icu_iter_get_org_info and icu_chain_get_org_info:
+returns original tokens (before normalization).
+
+CCL: avoid z39.58/regex truncation when not needed. Apply only the
+conversion of those masks, when absolutely necessary.
+
+CCL: configurable masking character - @mask. Default masking character
+is # for CCL.
+
+HTTP encoding: remove Transfer-Encoding header. YAZ uses content_len and
+full response anyway, so a Transfer-Encoding header will obstruct the
+response.
+
+--- 4.2.57 2013/05/15
+
+COMSTACK: @ uses AF_UNSPEC . But we prefer AF_INET6 over others when
+picking a socket. Problem is that some systems has IPV6 support, but
+we can't create sockets for them, so we pick AF_UNSPEC first.
+
+HTTP encode. Proper Content-Length YAZ-660. For yaz_encode_http_response
+use content_len to determine resulting Content-Length in HTTP response
+and NOT Content-Length supplied in headers by user.
+
+z_HTTP_header_add_basic_auth uses z_HTTP_header_set rather than
+z_HTTP_header_add, to avoid having two Authorization headers by mistake.
+
+Fix problem with HTTP decoding. For HTTP 1XX, 204, 304 assume no
+content-length.
+
+Fix yaz_base64decode to use proper signed. Problem occurred on platforms
+with big endian and unsigned char (by default).
+
+--- 4.2.56 2013/04/26
+
+Fix yaz-client connect (crash in 4.2.55).
+
+--- 4.2.55 2013/04/26
+
+Fix proxy/host problem for ZOOM that could occur if unix sockets
+was in use.
+
+New Debian package libyaz4-dbg.
+
+Fix problem with cs_close hang/wait in SSL mode. Invoke gnutls_bye
+differently in tcpip_close.
+
+--- 4.2.54 2013/04/17
+
+Windows installer of YAZ includes YAZ4J as a component.
+
+CQL: allow "extra terms" again, by default. Thus, the CQL parser
+accepts a superset the standard. This reverts to CQL as of YAZ 4.2.51
+and earlier. CQL parser may operate in strict mode where queries
+not conforming to the standard BNF are rejected (syntax error).
+Whether the CQL parser operates in strict mode is controlled with
+cql_parser_strict . Strict mode enabled with option -S for utilities
+cql2pqf and cql2xcql .
+
+yaz-ztest: returns OPACXML records for syntax=XML and element set=OP.
+
+--- 4.2.53 2013/04/10
+
+New charset, MARC-8c, which is like MARC-8 but allows control characters
+0x01 through 0x1F, except ESC to be passed through verbatim.
+
+Fix a problem with duplicate sub field character in MARC output. Problem
+happened only when output was MARC-8 encoded.
+
+--- 4.2.52 2013/04/03
+
+yaz-ztest: Use hash for fake hit count. Before, random number was used.
+This is problematic for unit tests using yaz-ztest. This patch also makes
+a hash for CQL queries. For RPN, any term with a leading digit will be
+treated as pseudu hit count (to force any particular hit count by a client).
+
+yaz-ztest: return unique MARC dummy records. Beyond record offset
+24, the author surname is patched with offset to make all records
+unique.
+
+COMSTACK: make @ bind to IPV6+IPV4 consistenly and avoid depending
+on system wide default (/proc/sys/net/ipv6/bindv6only).
+@4 binds to IPV4 only. @6 binds to IPV6 only.
+
+Update CQL API documentation a bit
+
+CQL: don't accept extra terms for queries. Makes the CQL parser
+stricly conformant to the standard.
+
+--- 4.2.51 2013/02/12
+
+GFS: scan handler gets extra_args from request and may return extra
+response data . That's for SRU only.
+
+Solr scan support for ZOOM and yaz-client. Patch from Simon Jacob.
+
+--- 4.2.50 2013/01/30
+
+New function, yaz_xml_to_opac, to convert from OPACXML to Z39.50 OPAC.
+
+OPACXML: sync spelling of availabilityDate in XML to that of Schema
+opaxxml.xsd. The schema had the correct spelling of this member always.
+The ASN.1 was mis-spelled and still is (API change) - we are
+not changing this. However, the OPAC to XML conversion had yet
+*another* typo.
+
+GFS: Allow conversion between Z39.50 OPAC and OPACXML via retrieval
+element.
+
+New function, z_ext_record_oid_nmem, which is similar to
+z_ext_record_oid but takes NMEM rather than ODR
+
+--- 4.2.49 2013/01/18
+
+ICU: New conversion element 'join' which joins tokens into one
+with a custom character given by rule attribute.
+
+--- 4.2.48 2013/01/10
+
+New GFS search member: present_number. This is a hint to the
+search handler how many records are going to be fetched immediately
+following search. There's no guarantee that it's going to be the case,
+since it depends on hit count (for Z39.50 piggyback) and whether errors
+turn up.
+
+Make a few functions static (private). The functions getbyte_stream,
+ungetbyte_stream and yaz_gets are now private. They were never declared
+in a header file.
+
+yaz-marcdump: exit(5) for serious decoding errors
+
+ISO2709 decoding: be more picky WRT header
+
+GFS: bail out of fetch if last_in_set is set. Until now, last_in_set,
+was only used as to indicate that next-result-set-position should be
+set to zero.
+http://www.loc.gov/z3950/agency/markup/04.html#Next-result-set-position
+Based on patch from Ashley Sanders.
+
+Make some functions static/private in PQF parsing. Those functions were
+never declared in a public header and so should not be in use by
+applications based on YAZ.
+
+--- 4.2.47 2012/11/23
+
+ZOOM: special options to control APDU logging.
+Using ZOOM_connection_option_set(c, "saveAPDU", "1") will enable
+logging of APDUs until "saveAPDU" option is set again. If logging is
+already enabled the effect is that current APDU buffer is cleared.
+Using ZOOM_connection_option_set(c, "saveAPDU", "0") disables
+logging (default behavior on new connection).
+The APDUs sent/received can be obtained by using
+Using ZOOM_connection_option_get(c, "APDU") or
+ZOOM_connection_option_getl(c, "APDU", &l).
+
+GFS: relay implementation_version from backend
+From 3.0.40 and later, implementation_version from backend was
+not used in init response at all.
+
+--- 4.2.46 2012/11/15
+
+Fix cs_rcvconnect for SSL comstack GNUTLS. Did not work in non-blocking
+mode at all. Probably never did.
+
+Make a new version of ztest.pem that, at least, is not expired.
+
+--- 4.2.45 2012/11/13
+
+Fix description of CCL directive 'case'.
+
+More tight checking of form arguments (yaz_uri_to_array). Makes
+YAZ better at rejecting big and/or bad POSTs.
+
+SRU decoding does not report more than up to 10 invalid arguments.
+
+rpn2cql: less quotes in generated terms. Semantics unchanged, but
+it's prettier this way.
+
+--- 4.2.44 2012/10/25
+
+New utility yaz_decode_init_diag. Defined in proto.h.
+
+Allow HTTP protocol on unix local socket. Also Z39.50 database may be
+given for unix local socket.
+    The COMSTACK string for doing so is:
+    unix:<spec>:<uri>
+    Examples:
+      unix:/myfile:tcp:localhost:9999/mybase
+      unix:/myfile:localhost:9999/mybase
+      unix:/myfile:http://fakehost/mybase
+
+debian: Use dpkg-buildflags in build process.
+
+--- 4.2.43 2012/10/19
+
+ZOOM C: don't trust recordPosition always. Some servers, such as IGI
+global's SRU service uses a recordPosition scheme starting from zero.
+First record's position should be one
+according to the standard.
+
+--- 4.2.42 2012/10/18
+
+Allow more namespaces for SRU. This is to allow, for example, an
+incorrect namespace returned from server
+http://services.igi-global.com/sru .
+
+Minor fixes for compilation on Windows.
+
+--- 4.2.41 2012/10/11
+
+daemon: log total number of bad signals from child on stop so that it
+is more easy to spot problems with child worker processes.
+
+retrieval: empty backend name attribute omits element set
+from being used in retrieval.
+
+--- 4.2.40 2012/10/04
+
+Implement Solr sort strategy "solr", similar to sru11 sorting. 
+This will implement the correct parameters on Solr requst to do 
+native sorting.
+
+--- 4.2.39 2012/09/28
+
+Implement ccl_qual_fitem2. Like ccl_qual_fitem but with diagnostic
+string returned.
+
+MARC: Extra/missing indicator handled for MARCXML.
+The indicator length is given in header and is the same for the
+whole record. If attributes ind1, ind2 are missing, then content
+character defaults to blank.  Extra indicator attributes (beyond)
+indicator length are treated as an error.
+
+Reformat: delete trailing whitespace
+
+--- 4.2.38 2012/09/17
+
+MARC: fix non-ASCII characters for leader. This is to ensure we can
+generate XML in UTF-8.
+
+CCL: new special attribute s=ag . Almost s=pw,al but preserves words
+in one node with structure word.
+
+--- 4.2.37 2012/09/04
+
+yaz-json-parse: JSON output may be pretty printed by using option
+-p twice.
+
+Increase default value of max message for Z39.50 Init for GFS, ZOOM
+and yaz-client. Old value was 1 MB. New value is 64 MB.
+
+--- 4.2.36 2012/08/22
+
+yaz-client: don't display bogus records from SRU servers. Some SRU servers
+return more records than given by *maximumRecords*. Skipping those in
+display!
+
+record_render: simplify buffer return handling and fix at least one bad
+memory reference, that broke the test_embed_record sometimes.
+
+Allow http://user:pass@host notation for yaz_url_exec.
+
+zoomsh: allow shell command to be executed. Via the system(3) call.
+
+yaz_poll: Allow num_fds == 0
+
+yaz-client: fix bad encoding of "itemorder item". The itemorder
+item <no>  - command forgot to use length of encoded Item Request
+package. Error present since YAZ 3.
+
+yaz-ztest: fix bad usage of session handle. Bug was introduced when
+result sets were saved (271a9c83).
+
+SRU recordPacking: guess record packing in response rather than looking
+at the recordPacking element which, OF COURSE, changed semantics in SRU
+2.0.
+
+Decode SRU 2.0 responses. The official namespace for responses, according
+to http://docs.oasis-open.org/search-ws/searchRetrieve/v1.0/cs01/schemas/sruRes
+appears to be http://docs.oasis-open.org/ns/search-ws/sruResponse .
+nature.com's server, however, usee namespace
+http://docs.oasis-open.org/ns/search-ws/sru-2-0-response . For this reason
+we are now using a glob-expr to match up the namespace. ZOOM C and
+yaz-client updated. Perhaps SRU 1.2 uses same namespace, I don't know.
+I can not find a single real example showing the "real" namespace in
+the documentation from OASIS. The namespace for requests is different
+from responses, but this is not added to YAZ yet, when we don't encode
+them yet.
+
+--- 4.2.35 2012/06/26
+
+zoom/record_render: add support for Base64 decoding fo MARC records
+within XML element. For example: "xml; charset=marc-8; base64=/my/text()"
+which will decode base64 + ISO2709 marc-8 encoded material from text node
+under /my .
+
+--- 4.2.34 2012/06/07
+
+Add missing definitions ZOOM_resultset_get_facet_field_by_index
+and ZOOM_resultset_facets_names.
+
+zoom: fix bad free for ZOOM_connect - happened when ZOOM connection
+options was in use.
+
+Change APDU dump printing to avoid long leading blanks. For levels 16
+or larger the level is shown and the indentation is truncated but
+recursed with modula 8. This makes it still reasonable easy to read
+- even for nested BER dumps.
+
+Fix bug completeBER_n WRT too nested BER. Function completeBER_n could
+return 0 (incomplete package) in case where the BER package was
+considered too nested (return value of -2).
+
+dumpber: lines of level 15 are not indented further. Two spaces per
+indentation; indentation 15 or more is indented to a fixed indentation
+and augmented with a level=<no> indication.
+
+zoomsh: increase max size of command+args
+
+GFS: No limit in RPN buf size in CQL to RPN conversion.
+
+--- 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 Web Service 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
+never been declared in a public header file (yaz/xmlquery.h) and was
+made public by mistake.
+
+Improve speed of character conversions (iconv utilities). This makes
+conversions from MARC-8 faster.
+
+ZOOM_record_get returns 0 pointer if a MARC record can not be decoded -
+unless type desired is "raw". This will prevent type "xml" from
+returning ISO2709 .. Which obviously can not be XML parsed.
+
+Fix memory leak in ZOOM that would occur if option apdulog was used
+on a re-used connection.
+
+Frontend server logs HTTP requests.
+
+Frontend server now sends Z39.50 close when it times out (sesssion has
+been idle for too long). Versions 2.0.30 and earlier also sent close.
+But due to a mistake this was disabled in all versions after that, i.e.
+the server would just close the socket immediately.
+
+yaz-client emits a better message when receiving an unrecognised
+userInformationField.
+
+Skip zero-length subfields when decoding ISO2709. This rare case happens
+if a record has two FS characters in a sequence. Without this patch
+there would be a reference beyond char array in using_code_len fragments
+in marcdisp.c.
+
+Fix yaz-marcdump error that would occur if option -n was used (bug #3028).
+
+--- 3.0.48 2009/08/28
+
+The show command offered by the zoomsh command now takes a 3d optional
+parameter type which is what is passed to ZOOM_record. If the type
+argument is omitted, "render" is used.
+
+RPN to CQL conv may use USE string attributes (bug #2978).
+
+MarcXchange NS is now info:lc/xmlns/marcxchange-v1 .
+
+--- 3.0.47 2009/07/08
+
+Function yaz_xml2query allows a diagnostic element in the PQF XML
+representation .. diagnostic@code and diagnostic@addinfo is diagnostic
+code and additional info respectively.
+
+The BER BOOLEAN is now the integral type Odr_bool which still happens
+to be an 'int'. The BER INTEGER which used to be a plain 'int' is now
+typedef'd to Odr_int. This is still an integral 'int', but it may be
+changed to 64-bit via a one-liner in nmem.h (NMEM_64=1). The documentation,
+ASN-1 compiler as well as programs has been updated to use the new types.
+
+--- 3.0.46 2009/06/08
+
+zoom: ZOOM_record_get now renders OPAC records when type=xml. Previously
+only the bibliographic record was rendered. For type=opac, an OPAC
+record is only returned if it is present.
+
+iconv: small fix for encoding of advancegreek.
+
+yaz-client: avoid double display of SRU/SRW records (bug #2798).
+
+yaz-client: option auto_reconnect=on really reconnects.
+
+yaz-client: fix bug #2770 - avoid length limit for auth parameters.
+
+server: avoid null ptr ref for for yaz_poll errors.
+
+build: fix RPM build for RHEL 5.3.
+
+comstack: prefer IPV6 addresses over IPV4 - should refix bug #2350
+
+--- 3.0.45 2009/03/31
+
+Fixed bug #2709: TCP connect returns Invalid argument.
+
+Fixed compilation for mingw.
+
+Honor charset for raw records (ZOOM_record_get).
+
+Fixed use of errno for threaded mode that was seen on Solaris 10.
+
+Fixed argument passing with blanks in value for Windows Service.
+
+Disable YAZ' own log rotate by default (no 1 GB limit).
+The variable l_max_size which specifies the log file limit is set to 0
+(DISABLED): This is due to the fact that YAZ is most often deployed using
+logrotate. Also YAZ can not perform log rotate because of unsufficient
+permissions (setuid).
+
+--- 3.0.44 2009/02/17
+
+List supported encodings in man page for yaz-iconv.
+
+Fixed missing SSL libs for --libs output
+
+Re-established OID record syntax application-xml. Nobody should use it
+but we don't want to change soname because of this symbol being absent.
+
+--- 3.0.42 2009/02/02
+
+YAZ' RPM spec works for both SUSE Linux Enterprise and RedHat Fedora.
+
+Added member named_result_sets for init handler struct for the GFS. This
+allows a server to disable named result sets.
+
+Removed OID record syntax application-xml.
+
+Added support for rule-based transliterator for ICU wrapper of YAZ.
+
+Fixed bug #1902: yaz-icu XML output.
+
+Make YAZ checks Emacs friendly.
+
+BITSTRING value shows value. Bug #2346.
+
+ISO2709 decoding: skip control characters from indicator data.
+
+Omit sort key by default in yaz-icu's output.
+
+Allow combined single char options (again) for YAZ' options function.
+
+Utility yaz-marcdump got option to display YAZ version (-V).
+
+Allow YAZ to use ICU 3.4.
+
+Added new ICU test case which illustrates removal of diacritics.
+
+--- 3.0.41 2008/12/29
+
+Fixed Fixed test that makes VERSION_SHA1 appear on dist versions too.
+
+--- 3.0.40 2008/12/29
+
+For configure, using option --without-xml2 also disables Libxslt/Libexslt
+support.
+
+Fixed bug #2352: yaz-marcdump crashes for certain record.
+
+Added man page 'bib1-attr' which includes list of common Bib-1 attributes.
+
+Added support for Danmarc2 to UTF-8 conversion.
+
+Added support for ISO5426 to UTF-8 conversion.
+
+zget_InitRequest/zget_InitResponse returns GIT SHA1 hash as part of 
+implementation version.
+
+Function yaz_version returns GIT SHA1 hash for parameter sha1_str.
+
+--- 3.0.38 2008/11/10
+
+ZOOM C now only fires one ZOOM_EVENT_SEARCH per search-task. Previously,
+ZOOM_EVENT_SEARCH was fired for each searchRetrieve Response received.
+
+ZOOM C now interprets databaseName option for ZOOM connection as path
+(SRU "database").
+
+Windows version bundled with Libxml2 2.7.1 / Libxslt 1.1.24 / ICU 4.0.
+
+Fixed CCL to RPN/PQF conversion which could result in invalid PQF.
+
+Dummy Libxml2 types no longer defined in headers of YAZ'.
+
+Fixed memory violation for ZOOM C - could occur when SRU diagnostics was
+received.
+
+--- 3.0.36 2008/09/26
+
+Various ODR chapter fixes.
+
+Windows version uses libxml2 2.6.32+, libxslt 1.1.23+ and ICU 4.0.
+
+Added missing source for Windows compilation, mutex.c.
+
+Fixed compilation of YAZ for Visual Studio 2008. Bug #2256.
+
+For SRU connections in ZOOM all records up to "count" are now fetched.
+
+Fixed crash in generic frontend server (and yaz-ztest) which occurred
+in Windows due to bad error handling for Libxml2.
+
+Added facility for sending arbitrary records (ASN.1 any) using
+ZOOM C's Extended service update. Patch by Sam Reynolds.
+
+New options for ZOOM C's connection, logapdu which makes ZOOM log
+APDUs.
+
+--- 3.0.34 2008/06/18
+
+YAZ uses GNU TLS without the OpenSSL compatibility wrapper.
+
 --- 3.0.32 2008/06/12
 
 Fixed memory violation that could occur when decoding UTF-8. This bug