source: yaz/trunk/fuentes/NEWS @ 265

Last change on this file since 265 was 265, checked in by mabarracus, 4 years ago

Add new source code 5.15.2

File size: 148.3 KB
Line 
1--- 5.15.2 2016/01/11
2
3Re-organize Windows build. Use ICU compiled with VS 2015 to use
4same runtime as rest of components (YAZ, Libxml2, etc).
5
6Move YAZ and many other software components to GitHub.
7
8--- 5.15.1 2015/11/12
9
10Bundle sha1 rather than use libgcrypt/nettle. This means that
11configure no longer accepts --with-gcrypt and --with-nettle.
12
13Fix rpn2cql fails for Bib-1 set in qry+conf YAZ-865
14
15--- 5.15.0 2015/11/11
16
17CCL: fix r=o, r=r WRT inherited attributes YAZ-864
18
19--- 5.14.12 2015/11/09
20
21Build with nettle on Debian/Ubuntu
22
23test system calls yaz_deinit_globals for better memory leak detection
24
25cs_get_host_args: allow unix:path:args notation
26
27Windows: build YAZ with VC 2015 and bundle it with runtime
28version 14.0.23026.
29
30--- 5.14.11 2015/10/09
31
32Fix RPN to CQL rejects local Bib-1 attribute set YAZ-861
33
34ZOOM C: tweak when connection failed is returned
35For cases with multiple socket addresses for some hostname, eg
36localhost IPV4+IPV6, the code now properly returns "connection
37failed" rather than "connection lost".
38
39Various minor documenation tweaks from David Crossley. Thanks.
40
41Fix windows uninstall does not remove start menu shortcuts YAZ-860
42
43--- 5.14.10 2015/09/16
44
45Prevent huge expansions in CCL s=sl YAZ-859
46
47--- 5.14.9 2015/09/15
48
49Fix segv in ZOOM_connection_fire_event_socket YAZ-858
50The odr_in memory taken by handle_srw_response, and, thus if result
51set is destructed before we expect the HTTP response (hres) it may
52be come invalid. Therefore we inspect hres before the call to
53ZOOM_handle_sru.
54
55Fix possible deadlock in backtrace (2nd attempt) YAZ-856
56An alarm is set up so that backtrace is terminated if it hangs.
57Even if backtrace the handler also attempts to spawn gdb.
58
59--- 5.14.8 2015/09/14
60
61Fix SEGV for s=sl for 3 terms and syntax error YAZ-857
62
63--- 5.14.7 2015/09/13
64
65Fix possible deadlock in backtrace YAZ-856
66
67Various minor text tweaks in documentation
68
69--- 5.14.6 2015/08/17
70
71Fix yaz-client command args parsing broken YAZ-855
72Bug introduced in 5be87e7a04c7219b31cefc0a3 - version 5.14.5
73
74--- 5.14.5 2015/08/06
75
76Stop building packages for obsolete Debian squeeze and use DH
77version 9. YAZ-854
78
79rpn2cql diagnostics: provide use attribute addinfo YAZ-853
80
81deb: deprecated substitution ${Source-Version} YAZ-852
82
83Fix yaz-client: semicolon terminates arguments YAZ-851
84
85--- 5.14.4 2015/07/29
86
87Windows: Bundle VC runtime exe YAZ-848
88
89Omit Content-Type for HTTP requests to Solr YAZ-850
90
91--- 5.14.3 2015/06/29
92
93Fix rpn2cql: structure, relation problem for serverChoice YAZ-849
94Problem was that for things mapped to cql.serverChoice the relation
95would sometimes be omitted when it should not. Eg for relation "all".
96
97--- 5.14.2 2015/06/15
98
99Document zoom extraArgs YAZ-817
100
101Fix ZOOM: crash extended services diagnostics YAZ-846
102The immediate fix is to prevent ZOOM_set_dset_error from removing
103current task from connection. This, however, has been assumed in a
104number of places so this fix is rather large unfortunately.
105
106--- 5.14.1 2015/06/11
107
108Make yaz_log_reopen async-signal YAZ-845
109Fixes potential dead-lock issue with YAZ_DAEMON_LOG_REOPEN flags for
110daemon API.
111
112--- 5.14.0 2015/06/08
113
114CCL: new feature s=spl (split-list) that splits terms in a search into
115sub-phrases of all sizes (from 1 up to the number of terms) with order
116preserved. For 3 terms the CCL search
117 a b c
118is turned into PQF:
119 @or @or @or @and @and a b c @and "a b" c @and a "b c" "a b c"
120
121Solr: don't set defType=lucene in URLs if extraArgs already defines it.
122
123--- 5.13.0 2015/05/29
124
125Add lock/unlock for YAZ log writes YAZ-843
126
127--- 5.12.2 2015/05/22
128
129Fix incorrect parsing of URLs @:9999/somebase&url=http://some.host YAZ-842
130
131--- 5.12.1 2015/05/13
132
133yaz-client: deal with excess bytes HTTPS case YAZ-833
134
135ZOOM C: deal with excess bytes HTTPS case YAZ-833
136
137Allow Windows installer for PATH to be updated YAZ-841
138
139Add Ubuntu Vivid 15.04 to list of Deb's to built
140
141--- 5.12.0 2015/05/08
142
143Allow Content-Type application/sru+xml YAZ-840
144
145New yaz_xml_get_prop utility YAZ-839
146
147Fix zebrasrv [warn] ir_session (exception) YAZ-838
148
149Document itemorder-setname and list all ILL options
150
151--- 5.11.0 2015/03/31
152
153Extend get_org_info (snippets) to return original string YAZ-836
154Two new functions have appeared: icu_chain_get_org_info2 and
155icu_iter_get_org_info2 with a 4th parameter being a pointer
156to the original string.
157
158Fix tcpip.c compilation failure on VC9 YAZ-835
159
160Fix icu_iter_get_norm returns invalid size for some input YAZ-834
161The icu_iter_get_org_info returns information based on string
162as it appears on tokenize step.
163
164--- 5.10.2 2015/03/13
165
166Deal with excess bytes in HTTP response for keepalive YAZ-830
167
168Refactor ssl_put and tcpip_put to one function YAZ-832
169
170Refactor ssl_get and tcpip_get to one function YAZ-831
171
172Fix SEGV yaz-client for HTTP decoding error YAZ-829
173
174Fix buffer overflow in cmd_elements in yaz-client YAZ-828
175
176--- 5.10.1 2015/03/03
177
178Fix test_sru.sh fails in pazpar2 YAZ-826
179Unfortunately a regression occurred with YAZ 5.10.0 that would make
180Pazpar2 fail for HTTP connections.
181
182--- 5.10.0 2015/03/03
183
184Use CONNECT for SSL backends and for Z39.50 thru HTTP proxy YAZ-825
185Introduce cs_create_host2 which returns if connection should be
186proxy aware (HTTP:absoluteUri or Z39.50 proxy:vhost in init).. For CONNECT,
187the connection is NOT proxy aware (no absoluteUri and no Z39.50 vhost).
188
189Fix http proxy fails with yaz-client YAZ-824
190
191--- 5.9.1 2015/02/06
192
193Fix 0 ptr reference for OPAC records from XML YAZ-822
194
195--- 5.9.0 2015/02/02
196
197Extend yaz daemon facility to assist int log rotation YAZ-818 YAZ-819
198
199--- 5.8.1 2015/01/13
200
201record conv: 'select' return org record if no x-path match YAZ-814
202
203retrieval: pick matched element-set rule YAZ-813
204
205Fix crash in record conv rule 'select' YAZ-812
206
207--- 5.8.0 2015/01/09
208
209record_conv: selection by X-Path YAZ-811
210That's a new step in record conversion system (<select path=".."/>)
211
212Document record render parameters for ZOOM - including base64
213
214--- 5.7.3 2015/01/06
215
216Fix application/x-www-form-urlencoded + empty YAZ-810
217A SEGV occurred if Content-Type was "application/x-www-form-urlencoded"
218and empty content was supplied.
219
220Fix yaz-iconv man page for typos and incorrect example. YAZ-809
221
222Fail hard if Bison is not found and is needed YAZ-808
223
224--- 5.7.2 2014/12/16
225
226Enable YAZ backtrace for programs YAZ-802
227
228Update NMAKE makefile to use Visual Studio 2013 along with ICU 54.1,
229Libxml2 2.9.2, Libxslt 1.1.28.
230
231Fix daemon: parent process stops before child YAZ-806
232Try to fix the situation where parent process stops before
233child has acknowledged it .. SIGUSR2 back!
234
235daemon: log message when keepalive stops.
236
237--- 5.7.1 2014/12/03
238
239Fix yaz-marcdump segfault YAZ-801. Problem in YAZ 5.6.0/5.7.0 and
240would make yaz-marcdump crash when from-character set was issued.
241
242--- 5.7.0 2014/11/24
243
244Dump backtrace in case of SIGABRT, SIGSEGV YAZ-787
245New function yaz_enable_panic_backtrace which enables backtrace
246handler for current process. The handler will call backtrace always,
247then gdb to provide as much detail as possible.
248
249--- 5.6.0 2014/11/17
250
251When marc-8 charset is specified when decoding MARC records, yaz-marcdump
252and ZOOM record render will inspect leader 9 and switch to UTF-8
253(Unicode) if that holds 'a'.  This changes behavior, but is considered
254safe because only MARC21 with leader 9='a' are Unicode.      YAZ-800
255
256Fix cs_put may reconnect if send fails. YAZ-798
257
258--- 5.5.1 2014/11/03
259
260Fix cannot build YAZ on jessie : libgnutls-dev is gone YAZ-797
261
262--- 5.5.0 2014/10/27
263
264Extended comstack with outgoing IP YAZ-795.
265For cs_create_host + cs_create_host_proxy the vhost may be followed
266by a outgoing host/IP. Separator is blank.
267
268--- 5.4.4 2014/10/20
269
270Add YAZ_EXPORT to cql_transform_r fixes YAZ-793 . This issue fixes
271linker error with yazpp on Windows.
272
273--- 5.4.3 2014/10/08
274
275Fix uri array may overflow in yaz_solr_encode_request YAZ-775
276
277Fix PQF to Solr conversion may produce invalid Solr query YAZ-792
278
2790 ptr reference in handling Solr response with error YAZ-791
280
281Fix annoying warning about wrbuf_putc on newer GCC YAZ-789
282
283Fix documentation about --installa option YAZ-788
284
285--- 5.4.2 2014/08/26
286
287daemon: properly report when receiving SIGUSR2 from child YAZ-785
288
289--- 5.4.1 2014/08/21
290
291xmalloc: throw assert for clearly invalid calls to malloc and
292improve diagnostics YAZ-783 YAZ-784
293
294--- 5.4.0 2014/08/19
295
296Stop building debs for Ubuntu raring, quantal, oneiric.
297
298CCL YAZ-781: for multiple use attributes in a specification the
299generated RPN will perform @or on each term.
300For spec: term u=31 u=1016
301the CCL: t  will generate: @or @attr 1=31 t @attr 1=1016 t
302
303log YAZ-780: avoid mixed log files by perform only one write(2) per log entry.
304
305CCL YAZ-779: combo qualifier should allow for forward references
306
307Fix buildconf.sh, automake too old on centos5 YAZ-778
308Achieved by adding AM_PROG_CC_C_O and requiring AM 1.9 instead.
309The AM_PROG_CC_C_O is obsolete for newer AM, but 1.14 (Debian jessie)
310accepts it without a warning.
311
312--- 5.3.0 2014/07/11
313
314GFS: client_query_charset conversion YAZ-777
315This is a feature for Z39.50 clients that sends queries that are not
316UTF-8 encoded. WIth client_query_charset, GFS will convert from the
317encoding given to UTF-8.
318
319Echoed SRU arguments support YAZ-776
320This is achieved with new function yaz_srw_get_pdu_e.
321
322ZOOM: expire times set for redis/memcached YAZ-772
323For both redis and memcached option --expire=seconds sets expire
324time for a result-set/search. Default time is 600 seconds (10 minutes).
325
326--- 5.2.1 2014/06/26
327
328No [rest of output is omitted] limit for yaz_log YAZ-774
329
330Optimize icu_iter_get_org_info. Reduce calls to u_strToUTF8.
331
332For ICU testing, pass -o to yaz-icu. This will test the
333icu_iter_get_org_info function.
334
335Fix null ptr reference for freeReplyObject YAZ-773
336
337--- 5.2.0 2014/06/12
338
339Allow ZOOM caching using redis. New ZOOM option "redis" controls it.
340
341RPM: do not build with libmemcached support. The libmemcached library
342on CentOS 5/6 does not work reliably for us (redis to the rescue).
343
344configure: only allow libmemcached version 0.40 or later. That's the version
345on Debian squeeze. We recommend libmemcached version 1.0 or later. If
346that's not an option, consider redis.
347
348--- 5.1.3 2014/06/04
349
350Fix dup ZOOM_EVENT_RECV_RECORD events for SRU/Solr YAZ-768
351
352Fix zoom+memcached: present request out of range YAZ-767
353
354--- 5.1.2 2014/05/30
355
356CCL: add new qualifier r=omiteq which will omit relation=equals
357for ordered relations. This should be used in combination with either
358r=r or r=o.  YAZ-766
359
360GFS: prevent truncation/overflow in retrieval phase. YAZ-763
361
362Solr: simplify yaz_solr_decode_response
363
364Solr: use different local var for string manipulation
365
366Solr: Get rid of hardcoded limit of extra_args
367
368Solr: encode lucene query type YAZ-736
369Make sure the queries are treated as traditional "lucene", because that's
370what YAZ generates.
371
372Fix ZOOM HTTP redirect failing on Windows+Solaris YAZ-755
373
374--- 5.1.1 2014/04/22
375
376Build packages for Ubuntu Trusty Tahr 14.04 LTS
377
378wrbuf_cstr: fix off by one error.
379
380wrbuf_buf: make it always return non-NULL
381Also, wrbuf_buf will return same buffer as previous call to wrbuf_cstr.
382
383--- 5.1.0 2014/04/17
384
385Doc: move main YAZ manual to book.xml; use nxml YAZ-758
386
387zoomsh: offer option -a apdulog
388As we're used to from yaz-client and GFS based servers.
389
390ZOOM: new setting apdufile. Sets name of APDU file. If not given,
391existing setting apdulog takes effect.
392
393Add odr_setprint_noclose. It's like odr_setprint, but does not fclose at
394odr_destroy.
395
396Add wrbuf_cstr_null.
397
398Add re-entrant CQL/Solr/RPN query conversion functions.
399The re-entrant functions are: cql_transform_r,
400cql_transform_rpn2cql_stream_r, solr_transform_rpn2solr_stream_r.
401These have same functionality as cql_transform,
402cql_transform_rpn2cql_stream, solr_transform_rpn2solr_stream. They
403return the additional infomration as WRBUF to make them re-entrant.
404
405Remove CQL to Solr conversion and base solr_transform_t on
406cql_transform_t. The RPN to Solr is indeed in use. It uses exact same
407data structure as cql_transform_t.
408
409cql2pqf utility allows RPN to Solr conversion
410
411Fix assert in ZOOM when http connect fails YAZ-757
412
413--- 5.0.22 2014/04/09
414
415ZOOM: Call cs_rcvconnect during HTTP redirect YAZ-754
416
417wrbuf_cstr: make it thread safe YAZ-753
418
419yaz_log_init_file may take fd=<no> to open log file at the FD given.
420
421--- 5.0.21 2014/03/21
422
423Offer new utility function zget_AttributeList_use_string.
424
425New conversion step, solrmarc, for record conversion module.
426
427--- 5.0.20 2014/03/13
428
429Fix gcrypt initialization for threaded mode. On systems were GnuTLS
430did not initialize gcrypt for threaded mode, wrbuf_sha1_write could
431throw an assert.
432
433--- 5.0.19 2014/03/10
434
435Fix ZOOM_connection_Z3950_search: Assertion YAZ-750
436The standalone ZOOM sort was completely broken since 5.0.13.
437
438ZOOM: generate event Connect rather than None for partial connect
439(in fact getaddrinfo resolving).
440
441ZOOM: only supply clientIP for InitRequest. Rather than for all
442APDU types.
443
444GFS: peer_name adds X-Forwarded/Client-IP to value YAZ-749
445
446COMSTACK flag CS_FLAGS_DNS_NO_BLOCK. This will enable non-blocking
447getaddrinfo . This flag is passed to cs_create macro and cs_create_host,
448cs_create_host_proxy functions. ZOOM C uses this flag. YAZ-744
449
450New "Facets" section in the documentation.
451
452--- 5.0.18 2014/02/27
453
454Call exsltRegisterAll in yaz_init_globals, so that all applications
455using YAZ will have EXSLT things enabled.
456
457Use extraArgs in key for memcached ZOOM C caching YAZ-747.
458
459Update various URLs to the re-organized SRU pages at LoC.
460
461--- 5.0.17 2014/02/26
462
463Fix ZOOM_connection_connect SEGVs if host==NULL YAZ-746. Problem
464introduced in 5.0.12.
465
466Fix: Setting env YAZ_LOG makes YAZ hang YAZ-745
467yaz_init_gloabsl calls yaz_log_init_globals calls yaz_log_mask_str_x .
468Do not call yaz_init_globals from log_mask_str_x. Problem introduce
469in 5.0.15.
470
471--- 5.0.16 2014/02/25
472
473tcpip/SSL COMSTACK: connect tries all getaddrinfo addresses YAZ-743
474
475--- 5.0.15 2014/02/24
476
477Fix gcrypt not properly initialized YAZ-740.
478
479--- 5.0.14 2014/02/19
480
481Describe memcached option for ZOOM.
482
483ZOOM: throw present request out of range again YAZ-739
484Was removed in YAZ 5.0.13.
485
486--- 5.0.13 2014/02/18
487
488yaz_log MUTEX protected and pthread_atfork is used to avoid dead-lock
489with localtime_r when threads + fork is used (such as Metaproxy).
490
491yaz-config: quote some RHS values (that might include blanks)
492
493zoomsh: shows SearchResult-1
494
495zoomsh: sortby command
496
497zoomsh: use proper list of connections and result sets YAZ-725
498
499Avoid yaz_log in sigterm handler for GFS YAZ-737
500Logging is still performed, but outside sig handler.
501
502New ZOOM C feature: result-set caching with memcached. Example:
503 zoomsh "set memcached --server=memcachehost" "connect zurl" "search query"
504
505Remove SSL via OpenSSL support YAZ-732
506Also deprecate two functions from comstack that aren't working with
507GnuTLS: cs_get_ssl, cs_set_ssl_ctx.
508
509Revert "Bison: use %name-prefix directive rather than -p option"
510
511--- 5.0.12 2014/01/22
512
513Prefix URL with http:// if sru setting hints SRU/Solr mode YAZ-731
514
515SRU GET/Solr base URLs may hold additional ?args YAZ-729
516ZOOM option extraArgs already does this, though. It seems useful
517when dealing with Solr targets to limit by filter, eg.
518   http://lui.indexdata.com:8080/solr4/select?fq=database:3902
519
520Remove #fragment for HTTP request encoding YAZ-730
521
522Doc: Update list of DLLs/LIBs
523
524Doc: update href link to Unix utils and Git.
525
526--- 5.0.11 2014/01/15
527
528ZOOM: fix "lost connection" problem with servers that uses both squid
529and another proxy behind it that returns Location headers with relative
530URIs. YAZ-724
531
532zoomsh: do not use readline for stdin (no tty) YAZ-724
533Just use fgets in that case. If the user hits Ctrl-D a new-line
534is also printed.
535
536zoomsh: empty command ignored YAZ-723
537rather than performing exit of zoomsh.
538
539yaz-url utility offers option -v to enable verbose mode.
540
541yaz_url uses yaz_check_location and offers verbose mode.
542
543Add new function yaz_check_location.
544This function gets an absolute URI from Location (HTTP redirect).
545
546cookie API: introduce yaz_cookies_reset
547
548Update cql.y for newer bison YAZ-720
549The important part is that YYLEX_PARAM and YYPARSE_PARAM are no
550longer supported. Instead one must use %lex-param and %parse-param .
551
552--- 5.0.10 2014/01/09
553
554ZOOM/yaz-client: Cookie handling; deal with relative URI in Location
555header. YAZ-719
556
557rpn2solr: support truncation left(2), left&right(3) YAZ-718
558
559Mention SRU version 2.0 in yaz-client man page.
560
561--- 5.0.9 2013/12/20
562
563ZOOM/yaz-client: allow SRU searchRetrieveResponse with incorrect
564namespace.
565
566--- 5.0.8 2013/12/20
567
568Make cs_parse_host public.A
569
570Fix double HTTP dump (-a log would show HTTP packages twice). Bug
571introduced in YAZ 5.0.6.
572
573--- 5.0.7 2013/12/17
574
575Fix buffer corruption for yaz-ztest record fetch.
576
577--- 5.0.6 2013/12/17
578
579Allow yaz-ztest to return user-defined records (one record per file).
580This is enabled by defining environment variable YAZ_ZTEST_XML_FETCH.
581
582Prevent early truncatin of HTTP log. (ODR_PRINT for HTTP streams).
583Use the stream write instead of odr_printf which has a 4K tmp buffer.
584
585Fix encoding of 0x00a4 (unicode to danmarc) YAZ-713
586
587--- 5.0.5 2013/12/09
588
589Add support for MARC-in-JSON. yaz-marcdump and the record conversion module
590can read and write this format. For record format JSON, yaz-ztest returns
591MARC-in-JSON records.
592
593iconv: fixes and more tests for danmarc character set encoding. 0xa733 is
594converted to @å , 0xa732 is converted to @Å instead of @a733, @a732 .
595
596--- 5.0.4 2013/11/22
597
598Improve error reporting for ICU chains YAZ-707
599Report config element+rule when ICU status is "failure".
600
601ZOOM: stop fetching if present response has no records YAZ-710
602Some targets return less records than their hit count would suggest.
603This prevents ZOOM from continuing to fetch records if any present
604response has 0 records in the response.
605
606Ensure that GFS calls exit if any listener fails YAZ-710
607Before, if XML config was in use, it would start the default
608listener @:9999!
609
610--- 5.0.3 2013/11/19
611
612yaz-ztest: -V shows version (like yaz-client -V)
613
614New iconv encoding: danmarc YAZ-692
615
616yaz-client: lslb, ssub, mspn are Odr_ints now YAZ-705
617
618daemon: only wait for immediate child rather than all children. YAZ-704
619
620yaz-client: fix setting of SRU record schema. If scheme was unset, it
621could lead to invalid memory reference.
622
623--- 5.0.2 2013/10/16
624
625yaz-ztest returns schema for MARCXML test records. SRU require that
626recordSchema for records.
627
628GFS: make surrogate diagnostic when yaz_record_conv_record fails -
629instead of non-surrogate diagnostic. This is a per-record failure.
630
631GFS: Allow multiple listenrefs YAZ-554. A server in yazgfs configuration
632may refer to multiple listeners now. Attribute listenref is a comma separated
633list of listen IDs.
634
635GFS: Use xmlconfig path as prefix for fnames YAZ-702. When -f
636option is given for GFS, the dirname of filename (for -f) is used
637as prefix for options such as cql2rpn, ccl2rpn, etc.
638
639Content-Type charset fixes YAZ-701 . Do not inspect charset in
640Content-Type header for SOAP when decoding SRU. The payload (XML)
641itself tells what encoding it is. In response, never supply encoding
642in Content-Type. The response payload (XML) tells what it is (with no
643encoding in XML it's UTF-8).
644
645HTTP decoding: allow blanks in URL paths YAZ-700
646
647--- 5.0.1 2013/10/04
648
649Various fixes for how SRU 2.0 is encoded. Fix NS for SRU 2.0 diagnostics
650and facets. Ensure recordData and recordSchema are always present in
651record element, because they are required.
652
653Remove deprecated functions yaz_uri_val .. and yaz_uri_val_int. Never used
654outside YAZ.
655
656Simplify in a lot of places using odr_strdupn.
657
658odr_create_Odr_oct: null terminate the buffer. Some applications rely on it.
659
660--- 5.0.0 2013/10/01
661
662Increase various buffers in GFS's statserv_options_block
663Change many 'unsigned char *' to 'char *' for ODR-related utilties.
664This change makes many type-casts redundant, and, thus simplifies code.
665
666Remove last bits of WAIS support.
667
668Remove member 'size' from Odr_oct.
669
670Slim down the public part of 'struct odr'. Most elements are not part
671of struct Odr_private.
672
673Add support for SRU 2.0. Since SRU 2.0 is incompatible with earlier
674versions of SRU, yaz-client and zoom C are using SRU 1.2 by default.
675In particular facets are supported in both client - and server side.
676Facets are also supported for Z39.50 and is carried in additionalSearchInfo
677of searchRequest/searchResponse with OID 1.2.840.10003.10.1000.81.5 AKA
678"Facet-1" in oid.csv. The info is defined in facet.asn (which covers
679both request/response). This is what a search handler in the GFS
680will see (regardless of whether operating in SRU mode or Z39.50).
681
682Changes to the srw.h (SRU/Solr) definitions include:
683- New element in Z_SRW_searchRetrieveRequest, queryType (char*) and query
684(char*), which replace union query and query_type (int).  This is because
685SRU 2.0 supports a queryType parameter. This also means that, to carry
686PQF, in SRU we can now use queryType=pqf and query=PQFstring , rather than
687x-pquery=PQFstring (extention parameter). The extension parameter
688is still supported.
689- New element, packing, that has information about SRU
6902.0 recordPacking (not to be confused with SRU 2.0 recordXMLEscaping).
691
692New element in Z_SRW_searchRetrieveResponse, resultCountPrecision.
693
694New element, packing, in Z_SRW_explainRequest.
695
696New elements in Z_SRW_scanRequest, queryType and scanClause.
697These replace query_type and scanClase untion. This is similar to what
698happend to search.
699
700--- 4.2.69 2013/10/01
701
702GFS: log when closing down - at least SIGTERM YAZ-684
703Also change formatting WRT PID logging a bit.
704
705Improve display of MARC records with multi-byte subfield IDs YAZ-695
706In some rare cases subfield identifiers are multi-byte characters.
707This will try to deterime length of those and split accordingly.
708This affects display in line mode as MARCXML/MarcXchange. The encoding
709of ISO2709 is the same.
710
711Change inp argument to const for yaz_read_UTF8_char.
712
713yaz-marcdump: fix leaks for MARCXML parsing. YAZ-694
714
715MARCXML parsing: avoid skipping 1st field if no leader. YAZ-693
716
717Better check of marc leader info YAZ-691
718Problem is that some systems generate MARCXML/MarcXchange with
719funny headers. These will not work if encoded as ISO2709.
720Some tests produce new output, due to updated warning messages
721
722cql2pqf: allow PQF queries from stdin (because CQL is also allowed)
723
724yaz-client: display MAB records YAZ-689.
725Thanks for Heiko Jansen for this patch.
726
727New utility z_get_HTTP_Response_server which allows both HTTP server name
728and HTTP server URL to be given in response.
729
730Debian: do not depend on obs tcl8.3.
731
732Debian: do not depend on obs libicu36-dev.
733
734--- 4.2.68 2013/09/23
735
736GFS: pass additionalSearchInfo to search memeber search_input if
737given. Otherwise pass otherInfo. Request for facets and other search
738related things will be passed there in future versions of YAZ.
739
740New ZOOM setting, authenticationMode, which allows authentication
741paramters to be encoded in the URL rather than via HTTP Basic auth.
742YAZ-686
743
744rpn2solr: fix nested AND/OR handling. YAZ-685
745
746Add comparison routines for some Z-types, such as NamePlusRecord,
747RPNQuery, Query, RecordComposition and OtherInformation.
748
749--- 4.2.67 2013/09/19
750
751Don't decode MAB as MARC. Just like we don't attempt to decode
752HTML/XML as MARC. Fixes MAB display problem that was introduced in 4.2.64.
753
754CCL: allow quoted terms for date ranges. YAZ-681
755
756Introduce ccl_parser_qual_search. This function makes old function
757ccl_qual_search, from YAZ 2, available again.
758
759Add yaz_facet_list_to_wrbuf. YAZ-683
760
761--- 4.2.66 2013/09/11
762
763ZOOM: fix record handling for Solr. ZOOM_record_get would return 0, if
764schema was given for search. YAZ-675
765
766Add Solr date range searches. YAZ-621
767
768--- 4.2.65 2013/08/22
769
770ZOOM: another fix for record caching (introduced in YAZ 4.2.64).
771
772--- 4.2.64 2013/08/21 (Broken WRT ZOOM C, do not use)
773
774ISO2709/MARC parse most octet aligned records; not just those that
775are known to be ISO2709/MARC. This makes ZOOM and yaz-client
776MARC parse more records instead of just dumping as is. YAZ-670
777
778ZOOM: proper caching for variations of record schema. YAZ-671
779
780Solr: Check for enging / and perhaps commands (select/term) YAZ-651
781
782--- 4.2.63 2013/07/17
783
784Add yaz_strcmp_null
785
786--- 4.2.62 2013/07/11
787
788New utility z_get_HTTP_Response_details - an extended version of
789z_get_HTTP_Response.
790
791New utility yaz_url_get_error which returns error message of last
792failed yaz_url_exec call.
793
794yaz-url and url functions: allow max HTTP redirects to be controlled.
795
796New functions yaz_file_glob2, yaz_xml_include_glob.
797These functions takes a flags parameter, which, for now only controls
798whether to fail inclusion of a non-existing file (without glob
799pattern) - flags YAZ_FILE_GLOB_FAIL_NOTEXIST.
800
801--- 4.2.61 2013/06/20
802
803For MARC XML parsing, allow record without leader. A fake/default leader
804is inserted and a warning is tagged with the record.
805
806ICU: fix leak in in icu_iter_get_org_info.
807
808--- 4.2.60 2013/06/14
809
810ICU: fix bug in icu_iter_get_org_info (un-init variable).
811
812--- 4.2.59 2013/06/11
813
814Implement z_HTTP_header_remove.
815
816--- 4.2.58 2013/06/11
817
818ICU: Disallow 0 ptrs for some ICU string utilities.
819
820ICU: new utilities icu_iter_get_org_info and icu_chain_get_org_info:
821returns original tokens (before normalization).
822
823CCL: avoid z39.58/regex truncation when not needed. Apply only the
824conversion of those masks, when absolutely necessary.
825
826CCL: configurable masking character - @mask. Default masking character
827is # for CCL.
828
829HTTP encoding: remove Transfer-Encoding header. YAZ uses content_len and
830full response anyway, so a Transfer-Encoding header will obstruct the
831response.
832
833--- 4.2.57 2013/05/15
834
835COMSTACK: @ uses AF_UNSPEC . But we prefer AF_INET6 over others when
836picking a socket. Problem is that some systems has IPV6 support, but
837we can't create sockets for them, so we pick AF_UNSPEC first.
838
839HTTP encode. Proper Content-Length YAZ-660. For yaz_encode_http_response
840use content_len to determine resulting Content-Length in HTTP response
841and NOT Content-Length supplied in headers by user.
842
843z_HTTP_header_add_basic_auth uses z_HTTP_header_set rather than
844z_HTTP_header_add, to avoid having two Authorization headers by mistake.
845
846Fix problem with HTTP decoding. For HTTP 1XX, 204, 304 assume no
847content-length.
848
849Fix yaz_base64decode to use proper signed. Problem occurred on platforms
850with big endian and unsigned char (by default).
851
852--- 4.2.56 2013/04/26
853
854Fix yaz-client connect (crash in 4.2.55).
855
856--- 4.2.55 2013/04/26
857
858Fix proxy/host problem for ZOOM that could occur if unix sockets
859was in use.
860
861New Debian package libyaz4-dbg.
862
863Fix problem with cs_close hang/wait in SSL mode. Invoke gnutls_bye
864differently in tcpip_close.
865
866--- 4.2.54 2013/04/17
867
868Windows installer of YAZ includes YAZ4J as a component.
869
870CQL: allow "extra terms" again, by default. Thus, the CQL parser
871accepts a superset the standard. This reverts to CQL as of YAZ 4.2.51
872and earlier. CQL parser may operate in strict mode where queries
873not conforming to the standard BNF are rejected (syntax error).
874Whether the CQL parser operates in strict mode is controlled with
875cql_parser_strict . Strict mode enabled with option -S for utilities
876cql2pqf and cql2xcql .
877
878yaz-ztest: returns OPACXML records for syntax=XML and element set=OP.
879
880--- 4.2.53 2013/04/10
881
882New charset, MARC-8c, which is like MARC-8 but allows control characters
8830x01 through 0x1F, except ESC to be passed through verbatim.
884
885Fix a problem with duplicate sub field character in MARC output. Problem
886happened only when output was MARC-8 encoded.
887
888--- 4.2.52 2013/04/03
889
890yaz-ztest: Use hash for fake hit count. Before, random number was used.
891This is problematic for unit tests using yaz-ztest. This patch also makes
892a hash for CQL queries. For RPN, any term with a leading digit will be
893treated as pseudu hit count (to force any particular hit count by a client).
894
895yaz-ztest: return unique MARC dummy records. Beyond record offset
89624, the author surname is patched with offset to make all records
897unique.
898
899COMSTACK: make @ bind to IPV6+IPV4 consistenly and avoid depending
900on system wide default (/proc/sys/net/ipv6/bindv6only).
901@4 binds to IPV4 only. @6 binds to IPV6 only.
902
903Update CQL API documentation a bit
904
905CQL: don't accept extra terms for queries. Makes the CQL parser
906stricly conformant to the standard.
907
908--- 4.2.51 2013/02/12
909
910GFS: scan handler gets extra_args from request and may return extra
911response data . That's for SRU only.
912
913Solr scan support for ZOOM and yaz-client. Patch from Simon Jacob.
914
915--- 4.2.50 2013/01/30
916
917New function, yaz_xml_to_opac, to convert from OPACXML to Z39.50 OPAC.
918
919OPACXML: sync spelling of availabilityDate in XML to that of Schema
920opaxxml.xsd. The schema had the correct spelling of this member always.
921The ASN.1 was mis-spelled and still is (API change) - we are
922not changing this. However, the OPAC to XML conversion had yet
923*another* typo.
924
925GFS: Allow conversion between Z39.50 OPAC and OPACXML via retrieval
926element.
927
928New function, z_ext_record_oid_nmem, which is similar to
929z_ext_record_oid but takes NMEM rather than ODR
930
931--- 4.2.49 2013/01/18
932
933ICU: New conversion element 'join' which joins tokens into one
934with a custom character given by rule attribute.
935
936--- 4.2.48 2013/01/10
937
938New GFS search member: present_number. This is a hint to the
939search handler how many records are going to be fetched immediately
940following search. There's no guarantee that it's going to be the case,
941since it depends on hit count (for Z39.50 piggyback) and whether errors
942turn up.
943
944Make a few functions static (private). The functions getbyte_stream,
945ungetbyte_stream and yaz_gets are now private. They were never declared
946in a header file.
947
948yaz-marcdump: exit(5) for serious decoding errors
949
950ISO2709 decoding: be more picky WRT header
951
952GFS: bail out of fetch if last_in_set is set. Until now, last_in_set,
953was only used as to indicate that next-result-set-position should be
954set to zero.
955http://www.loc.gov/z3950/agency/markup/04.html#Next-result-set-position
956Based on patch from Ashley Sanders.
957
958Make some functions static/private in PQF parsing. Those functions were
959never declared in a public header and so should not be in use by
960applications based on YAZ.
961
962--- 4.2.47 2012/11/23
963
964ZOOM: special options to control APDU logging.
965Using ZOOM_connection_option_set(c, "saveAPDU", "1") will enable
966logging of APDUs until "saveAPDU" option is set again. If logging is
967already enabled the effect is that current APDU buffer is cleared.
968Using ZOOM_connection_option_set(c, "saveAPDU", "0") disables
969logging (default behavior on new connection).
970The APDUs sent/received can be obtained by using
971Using ZOOM_connection_option_get(c, "APDU") or
972ZOOM_connection_option_getl(c, "APDU", &l).
973
974GFS: relay implementation_version from backend
975From 3.0.40 and later, implementation_version from backend was
976not used in init response at all.
977
978--- 4.2.46 2012/11/15
979
980Fix cs_rcvconnect for SSL comstack GNUTLS. Did not work in non-blocking
981mode at all. Probably never did.
982
983Make a new version of ztest.pem that, at least, is not expired.
984
985--- 4.2.45 2012/11/13
986
987Fix description of CCL directive 'case'.
988
989More tight checking of form arguments (yaz_uri_to_array). Makes
990YAZ better at rejecting big and/or bad POSTs.
991
992SRU decoding does not report more than up to 10 invalid arguments.
993
994rpn2cql: less quotes in generated terms. Semantics unchanged, but
995it's prettier this way.
996
997--- 4.2.44 2012/10/25
998
999New utility yaz_decode_init_diag. Defined in proto.h.
1000
1001Allow HTTP protocol on unix local socket. Also Z39.50 database may be
1002given for unix local socket.
1003    The COMSTACK string for doing so is:
1004    unix:<spec>:<uri>
1005    Examples:
1006      unix:/myfile:tcp:localhost:9999/mybase
1007      unix:/myfile:localhost:9999/mybase
1008      unix:/myfile:http://fakehost/mybase
1009
1010debian: Use dpkg-buildflags in build process.
1011
1012--- 4.2.43 2012/10/19
1013
1014ZOOM C: don't trust recordPosition always. Some servers, such as IGI
1015global's SRU service uses a recordPosition scheme starting from zero.
1016First record's position should be one
1017according to the standard.
1018
1019--- 4.2.42 2012/10/18
1020
1021Allow more namespaces for SRU. This is to allow, for example, an
1022incorrect namespace returned from server
1023http://services.igi-global.com/sru .
1024
1025Minor fixes for compilation on Windows.
1026
1027--- 4.2.41 2012/10/11
1028
1029daemon: log total number of bad signals from child on stop so that it
1030is more easy to spot problems with child worker processes.
1031
1032retrieval: empty backend name attribute omits element set
1033from being used in retrieval.
1034
1035--- 4.2.40 2012/10/04
1036
1037Implement Solr sort strategy "solr", similar to sru11 sorting.
1038This will implement the correct parameters on Solr requst to do
1039native sorting.
1040
1041--- 4.2.39 2012/09/28
1042
1043Implement ccl_qual_fitem2. Like ccl_qual_fitem but with diagnostic
1044string returned.
1045
1046MARC: Extra/missing indicator handled for MARCXML.
1047The indicator length is given in header and is the same for the
1048whole record. If attributes ind1, ind2 are missing, then content
1049character defaults to blank.  Extra indicator attributes (beyond)
1050indicator length are treated as an error.
1051
1052Reformat: delete trailing whitespace
1053
1054--- 4.2.38 2012/09/17
1055
1056MARC: fix non-ASCII characters for leader. This is to ensure we can
1057generate XML in UTF-8.
1058
1059CCL: new special attribute s=ag . Almost s=pw,al but preserves words
1060in one node with structure word.
1061
1062--- 4.2.37 2012/09/04
1063
1064yaz-json-parse: JSON output may be pretty printed by using option
1065-p twice.
1066
1067Increase default value of max message for Z39.50 Init for GFS, ZOOM
1068and yaz-client. Old value was 1 MB. New value is 64 MB.
1069
1070--- 4.2.36 2012/08/22
1071
1072yaz-client: don't display bogus records from SRU servers. Some SRU servers
1073return more records than given by *maximumRecords*. Skipping those in
1074display!
1075
1076record_render: simplify buffer return handling and fix at least one bad
1077memory reference, that broke the test_embed_record sometimes.
1078
1079Allow http://user:pass@host notation for yaz_url_exec.
1080
1081zoomsh: allow shell command to be executed. Via the system(3) call.
1082
1083yaz_poll: Allow num_fds == 0
1084
1085yaz-client: fix bad encoding of "itemorder item". The itemorder
1086item <no>  - command forgot to use length of encoded Item Request
1087package. Error present since YAZ 3.
1088
1089yaz-ztest: fix bad usage of session handle. Bug was introduced when
1090result sets were saved (271a9c83).
1091
1092SRU recordPacking: guess record packing in response rather than looking
1093at the recordPacking element which, OF COURSE, changed semantics in SRU
10942.0.
1095
1096Decode SRU 2.0 responses. The official namespace for responses, according
1097to http://docs.oasis-open.org/search-ws/searchRetrieve/v1.0/cs01/schemas/sruRes
1098appears to be http://docs.oasis-open.org/ns/search-ws/sruResponse .
1099nature.com's server, however, usee namespace
1100http://docs.oasis-open.org/ns/search-ws/sru-2-0-response . For this reason
1101we are now using a glob-expr to match up the namespace. ZOOM C and
1102yaz-client updated. Perhaps SRU 1.2 uses same namespace, I don't know.
1103I can not find a single real example showing the "real" namespace in
1104the documentation from OASIS. The namespace for requests is different
1105from responses, but this is not added to YAZ yet, when we don't encode
1106them yet.
1107
1108--- 4.2.35 2012/06/26
1109
1110zoom/record_render: add support for Base64 decoding fo MARC records
1111within XML element. For example: "xml; charset=marc-8; base64=/my/text()"
1112which will decode base64 + ISO2709 marc-8 encoded material from text node
1113under /my .
1114
1115--- 4.2.34 2012/06/07
1116
1117Add missing definitions ZOOM_resultset_get_facet_field_by_index
1118and ZOOM_resultset_facets_names.
1119
1120zoom: fix bad free for ZOOM_connect - happened when ZOOM connection
1121options was in use.
1122
1123Change APDU dump printing to avoid long leading blanks. For levels 16
1124or larger the level is shown and the indentation is truncated but
1125recursed with modula 8. This makes it still reasonable easy to read
1126- even for nested BER dumps.
1127
1128Fix bug completeBER_n WRT too nested BER. Function completeBER_n could
1129return 0 (incomplete package) in case where the BER package was
1130considered too nested (return value of -2).
1131
1132dumpber: lines of level 15 are not indented further. Two spaces per
1133indentation; indentation 15 or more is indented to a fixed indentation
1134and augmented with a level=<no> indication.
1135
1136zoomsh: increase max size of command+args
1137
1138GFS: No limit in RPN buf size in CQL to RPN conversion.
1139
1140--- 4.2.33 2012/05/09
1141
1142New function for daemon utility, yaz_daemon_stop .
1143
1144Makes yaz_srw_sortkeys_to_sort_spec public on Windows.
1145
1146--- 4.2.32 2012/04/25
1147
1148Add some Bib-1/SRU diagnostics + mappings. Bib-1: 1073 and
1149Bib-1 1074: Proxy failure. SRU: 1074: Proxy failure
1150
1151--- 4.2.31 2012/04/23
1152
1153YAZ daemon utility relays SIGUSR1 to child process.
1154
1155ZOOM: handle trailing slash for Z39.50 urls. Previously localhost:9999/
1156would result in en empty database list - which in turn would result in
1157encoding failure for search.
1158
1159Fix reading beyond string in yaz_sort_spec.
1160
1161--- 4.2.30 2012/04/11
1162
1163Add two new SRU diagnostics:
1164 236: Access to specified database denied
1165 1015: Init/AC: Maximum number of simultaneous sessions for Userid
1166
1167Document the very useful ZOOM-C option "apdulog".
1168
1169CQL to RPN: term may be passed through verbatim. This is enabled with
1170truncation.cql . The assumption being that the term is already CQL.
1171
1172--- 4.2.29 2012/03/20
1173
1174record_conv: leader spec may be given for marc element.
1175The leader spec is given as attribute leaderspec for element marc.
1176For example to convert a MARC21 record from MARC-8 to UTF-8:
1177     <marc inputformat="marc" outputformat="marc"
1178      inputcharset="marc-8" outputcharset="utf-8 "leaderspec="9='a'"/>
1179
1180record_conv: allow user-XSLT params. For example:
1181       <xslt stylesheet="MARC21slim2DC.xsl">
1182          <param name="myparameter" value="myvalue"/>
1183          <param name="otherparameter" value="othervalue"/>
1184       </xslt>
1185
1186record_conv: fix error handling for missing marc charsets.
1187
1188CQL: fix extra terms in wrong order.
1189
1190--- 4.2.28 2012/03/06
1191
1192record_conv: modify new API for conversion types. The conversion types
1193may be passed in new functions yaz_record_conv_configure_t and
1194yaz_retrieval_configure_t.  Removing yaz_record_conv_add_type .
1195
1196Avoid mixed statement/variable declare; fixes compilation with Visual
1197Studio.
1198
1199--- 4.2.27 2012/02/28
1200
1201Add non-standard SRU diagnostic: 235: "Database does not exist".
1202Couldn't live without it. HTTP 404: "Not found" is just so anonymous.
1203Update SRU to Bib-1 diagnostic maps accordingly.
1204
1205CCL: add two new diagnostics for unsupported masking. The new
1206diagnostics are: "Embedded truncation not supported" and
1207"Single charcacter mask not supported". 
1208
1209--- 4.2.26 2012/02/23
1210
1211CCL: fix use of "term" field in sub queries. Bug introduced in YAZ 4.2.25.
1212
1213--- 4.2.25 2012/01/11
1214
1215Build YAZ for Ubuntu Oneiric.
1216
1217CCL: allow parantheses for proximity operands. For example CCL query
1218(a) % (b)   is now allowed.
1219
1220GFS: fix bend_assoc_is_alive. When cs_get returns 0 the association is
1221marked dead, rather then being destroyed. If not, the session memory is
1222being free'd before the search/scan handler is finished. Also destroy
1223'request' memory in request_release rather than in various places,
1224which resulted in leaks from time to time.
1225
1226--- 4.2.24 2011/12/21
1227
1228cql_sortby_to_sortkeys: honor sort prefix.
1229
1230RPN to CQL: always quote resulting terms. For bizarre reasons, JSTOR's
1231SRU server returns 0 hits on ISSN searches unless a CQL term is quoted.
1232The rpn2cql family of functions now always returns quoted CQL terms.
1233
1234Fix CQL to CCL conversion for multiple terms. Add two test cases as well.
1235
1236--- 4.2.23 2011/12/15
1237
1238Allow =val to be omitted for yaz_uri_to_array. Also, multiple &'s in
1239sequence is treated as one. For example, &&a=b&&&c& is identical to
1240a=b&c= .
1241
1242--- 4.2.22 2011/12/05
1243
1244Add ZOOM_connection_save_apdu_wrbuf. This function may be used to save
1245APDUs for a connection to a WRBUF.
1246
1247--- 4.2.21 2011/11/23
1248
1249Fix cql_sortby_to_sortkeys. Completely broken before.
1250
1251Make CCL's @truncation work again.
1252
1253--- 4.2.20 2011/11/09
1254
1255New ZOOM connection setting: tproxy.  It's like proxy, but does not
1256set Z39.50 proxy OID or change HTTP for proxy behavior. Can be used
1257to set resolved address + port for a connection outside ZOOM itself.
1258
1259Fix atoi_n_check digit test. Thanks to Giannis Kosmas for spotting it.
1260
1261--- 4.2.19 2011/11/07
1262
1263Fix uninitialized variable in Solr spell support (could cause SEGV
1264for SRU response decoding).
1265
1266Error handling for Z_APDU_close uses ZOOM_set_dset_error() to pass
1267back-end's addinfo through into the ZOOM response addinfo.
1268
1269When ZOOM_set_dset_error() is passed an addinfo2 as well as addinfo,
1270they are separated by a colon and a space rather than simply
1271concatenated.
1272
1273--- 4.2.18 2011/10/28
1274
1275Add support for Solr spell-checking/suggestions through ZOOM.
1276If a Solr target has been configured correctly for spelling-checking
1277and suggestions, these will now be returned on the ResultSet option
1278"suggestions". zoomsh has been extended to show this with the cmd suggestions.
1279
1280--- 4.2.17 2011/09/28
1281
1282Fix function nmem_strsplit_escape2 which extends nmem_strsplit_escape
1283with a flag whether to substitute escape sequences or not.
1284
1285--- 4.2.16 2011/09/22
1286
1287Fix nmem_strsplit_escape to substitute escape char properly.
1288
1289New option for zoomsh  -e , which makes it abort on first error and
1290return process exit code to indicate success/failure.
1291
1292YAZ options utility supports special option -- which makes all it treat
1293all following arguments as non-options.
1294
1295--- 4.2.15 2011/09/16
1296
1297Fix yaz_file_path_resolve/yaz_path_fopen/yaz_fopen so that path is not
1298searched if absolute filename is given.
1299
1300Fix conv_xslt() error-reporting when stylesheet is not found.
1301(The value of fullpath is meaningless in this situation.)
1302
1303--- 4.2.14 2011/09/07
1304
1305Fix problem in CQL sort node creation: un-initialized memory.
1306
1307New ZOOM utility ZOOM_query_sortby2. That takes a strategy parameter: one of
1308"z3950", "type7", "cql", "sru11" or "embed". The "embed" chooses type-7 or
1309CQL sortby depending on whether Type-1 or CQL is actually sent to the
1310target.
1311
1312New sortspec utilities: yaz_srw_sortkeys_to_sort_spec,
1313yaz_sort_spec_to_srw_sortkeys, yaz_sort_spec_to_type and 7yaz_sort_spec_to_cql.
1314
1315rpn2solr supports Z39.58 truncation (104). Thus, CCL truncation mode t=z
1316will make it possible to use both single-character mask (#) and wildcard (?)
1317in CCL . Throw diagnostic for left truncation because that is not supported
1318by Solr.
1319
1320--- 4.2.13 2011/09/01
1321
1322Fixes for cql2rpn, cql2ccl and ccl2rpn; mostly in the area of special
1323cases using escapes (\-sequences) and masking.
1324
1325PQF parse fix: A trailing backslash followed by end-of-string (\0)
1326would result in a read one byte beyond string.
1327
1328rpn2ccl may use Z39.50 masking for terms (t=z).
1329
1330ICU check fix. Don't include library -lCrun on Solaris, unless present.
1331
1332ICU check fix: Use --cppflags-searchpath to determine ICU include files;
1333not --cppflags (which seeems like an error in icu-config).
1334
1335--- 4.2.12 2011/08/27 RPM package only
1336
1337cql2ccl: fix conversion of terms: operator characters were not
1338quoted/escaped.
1339
1340--- 4.2.11 2011/08/25 RPM package only
1341
1342ccl2rpn: Conversion to regexp-1 terms (trunc=102). For mode t=x, the
1343CCL parser will map both # and ? to their regular expression
1344quivalents (. and .*).
1345
1346rpn2cql: deal with truncation=102 (regexp-1). And ensure proper quoting
1347of reserved CQL characters.
1348
1349cql2ccl: deal with both * and ? in conversion. Also leave escaped ones as
1350is, so that they are passed through.
1351
1352--- 4.2.10 2011/08/24
1353
1354ZOOM SRU mode: more aggressive re-connect.
1355
1356Private function prox_unit_name() renamed to yaz_prox_unit_name() and
1357made available as a utility function, declared in <yaz/logrpn.h>
1358
1359rpn2cql_structure() supports proximity nodes (except that the Type-1
1360proximity node's "exclusion" binary is ignored, as there is no way to
1361express that in CQL).  Fixes bug #4564.
1362
1363--- 4.2.9 2011/08/18
1364
1365Fix SEGV that could occur if set command of zoomsh was given without
1366value (2nd argument).
1367
1368Fix SEGV that could occur if unsupported transport was given for
1369COMSTACK - say https (when SSL was unavailable).
1370
1371Build yaz-url on Windows too.
1372
1373--- 4.2.8 2011/08/11
1374
1375New utility to get web content. Header is url.h. A command line tool
1376yaz-url is part of the distribution and packages.
1377
1378Fixes for SSL COMSTACK (when gnutls is in use).
1379
1380New functions yaz_base64{encode,decode}. Header is base64.h.
1381
1382--- 4.2.7 2011/08/03
1383
1384ZOOM C includes HTTP response buffer as additional info if it fails
1385to decode the SRU response.
1386
1387Make wrbuf_json_puts available.
1388
1389--- 4.2.6 2011/07/28
1390
1391zoom: throw diagnostic for invalid value for option "sru". Before a
1392bad SRU request was sent.
1393
1394Adding new utility wrbuf_vp_puts.
1395
1396Add cclxmlconfig.obj to win/makefile. It was missing completely.
1397
1398--- 4.2.5 2011/07/21
1399
1400ZOOM HTTP: use absoluteURI's in proxy mode as required by RFC 2616 (HTTP).
1401Fix a bug in handling of cookies. Fix a bug that would occur if proxy +
1402redirect was used at the same time.
1403
1404MARC line mode decoding: be less picky about length given - first
14055 digits of header that is.
1406
1407CQL to CCL conversion: deal with CQL proximity (cql_to_ccl function).
1408
1409Changes to decoding of SRU records: a record with recordPacking=xml is
1410modified with a new root element <yaz_record> if the recordData contains
1411multiple children elements. This is to make the record XML parseable
1412afterwards.
1413
1414RPN to Solr conversion: encode special characters.
1415
1416Generic Frontend Server: fix uinitialized member, stepSize.
1417
1418--- 4.2.4 2011/06/21
1419
1420Fix a bug in SRU decoding of records.. The database records stored
1421had un-initialized memory, but it would only be seen with yaz_record_render
1422and type_spec="ext" .
1423
1424Fix a bug in ccl_qual_dup introduced in 4.2.3.
1425
1426--- 4.2.3 2011/06/17
1427
1428Add new CCL utility, ccl_qual_dup, which makes a copy of a CCL bibset.
1429
1430--- 4.2.2 2011/06/10
1431
1432Add new utilities to convert from CQL to CCL . These utilities have
1433prefix cql_to_ccl defined in cql.h.
1434
1435Defensive coding for an off-by-one bug in ucol_getSortKey. This could
1436lead to memory heap corruptions when ICU utilities were in use.
1437
1438--- 4.2.1 2011/06/07
1439
1440Make compilation work without Libxml2.
1441
1442yaz-client: remove redundant blanks in display of searchResult-1 term
1443hit counts.
1444
1445--- 4.2.0 2011/05/18
1446
1447CQL: parse CQL sortby spec. The resulting sort spec is stored in the
1448resulting CQL node (tree) in a new node CQL_NODE_SORT.
1449
1450CQL and GFS: add utility cql_sortby_to_sortkeys which converts CQL sortby
14511.2 node tree to CQL 1.1 spec. This in turn allows the generic frontend
1452server to only consider srw_sortkeys and support both SRU 1.1 and 1.2.
1453Note that the CQL sortby spec is only converted when the GFS is already
1454converting from CQL to RPN (cql2rpn element).
1455
1456New function nmem_strsplitx. This is like nmem_strsplit but allows us to
1457specify whether to collapse delimitors or not. The existing nmem_strsplit
1458do collapse (collapse parameter = 1).
1459
1460Windows installer: For NSIS, set InstallDir depending on x86/x64.
1461
1462Rename internal func yaz_use_attribute_create. While non-static, this
1463function is not declared in a public header.
1464
1465--- 4.1.7 2011/03/15
1466
1467Add -lCrun when linking with ICU on Solaris.
1468
1469More quicks character set conversions for OPAC records.
1470
1471--- 4.1.6 2011/03/10
1472
1473fix problem with record_render: records were converted (character set
1474wise) even if no charset was given. Problem introduced in YAZ 4.1.5.
1475
1476--- 4.1.5 2011/03/08
1477
1478SRU: add methods for handling DADS SRU-proxy facets.
1479
1480Separate OPAC record character set for ZOOM_record. yaz_record_render
1481allows a character set given as charset=from/opacfrom,to where 'from' is
1482the character set of a bibliographic record, 'opacfrom' is character set
1483of OPAC record and 'to' is the target character set.
1484
1485--- 4.1.4 2011/02/21
1486
1487yaz-client: show may XML format records. Command show followed by 'format'
1488will format XML records retrieved using Libxml2's xmlDocDumpFormatMemory
1489function.
1490
1491src/stemmer.c: Avoid using unnamed union. It is not supported by some
1492older C compilers.
1493
1494For PHPYAZ: set YAZVERSION, not YAZ_VERSION.
1495
1496--- 4.1.3 2011/01/27
1497Update yaz.spec to operate on both SLES11 / Centos 5.5.
1498
1499RPM: Release includes 'indexdata' name. Use indexdata in release name so
1500this package can be distinguished from other vendors.
1501
1502yaz-config: Use exec_prefix, libdir, includedir .  Use these variables
1503as determined by configure
1504
1505yaz-config: set YAZ_VERSION env. php_yaz relies on it.
1506
1507GFS: Z_PresentStatus_partial_4 for missing record. If bend_fetch handler
1508returns no error and no record, the present request is considered
1509partial (only a subset of the records could be returned by backend), and
1510so it is appropriate to set Present Status to partial-4.
1511
1512--- 4.1.2 2010/11/02
1513
1514Move yaz-config man pages to section 1.
1515
1516More documentation about Solr.
1517
1518tcp comstack: change behavior for @-specs (anyaddr). @ listens on
1519AF_INET (IPV4) peers, and @6 listens to AF_INET6 (ipv6) peers.
1520Previously @ listened on AF_INET6 which accepted both IPV4 and IPV6
1521peers on some Linux systems. However, in general that does not work
1522so YAZ can not rely on that to work. Debian changed behavior in this
1523respect from Debian lenny to Debian squeeze (still testing as of Oct
15242010). Refer to:
1525http://www.mail-archive.com/debian-devel@lists.debian.org/msg277726.html
1526
1527zoomsh: remove "debugging" output. Was added by mistake in 4.1.0.
1528
1529--- 4.1.1 2010/10/05
1530
1531Fix yaz-config output: echo_source not set correctly by configure.
1532
1533--- 4.1.0 2010/10/05
1534
1535Solr Web Service support for yaz-client and ZOOM.
1536
1537Define record syntax JSON. OID: 1.2.840.10003.5.1000.81.3 .
1538
1539--- 4.0.12 2010/08/17
1540
1541Z39.50 facet support. Facet specifications are passed for search in
1542other-information with ASN.1 as defined in facet.asn and OID
1543.10.1000.81.5 . Facets are expressed as an Attribute list as known
1544from Type-1/RPN queries.  Type 1 is field. Type 2 is sort order. Type
15453 is limit (number of entries to get in response). yaz-ztest returns
1546dummy facets if a client asks for them.
1547
1548--- 4.0.11 2010/07/09
1549
1550CCL fixes: bug 2895 and bug 3539.
1551
1552GR1-display: add comma in display - was removed by mistake in
1553version 4.0.0.
1554
1555Windows installer: bundle MSVCP90.dll - used by icuuc42.dll.
1556
1557SRU: Merge cookies on HTTP redirects (Giannis Kosmas <kosmas@lib.uoc.gr>).
1558
1559--- 4.0.10 2010/06/18
1560
1561ZOOM C: Add ZOOM_resultset_release. ZOOM_resultset_release releases a
1562result set from a connection. The result set will be on its own
1563thereafter; no operations on it will perform retrievals from a target.
1564Only cached copies are returned.
1565
1566ZOOM C:fix case for HTTP servers responding with Connection:close.
1567Ensure that if there is a current task it is resumed (like fetching
1568more records in a result set) . Bug #3484.
1569
1570PQF parser: use odr_atoi for Odr_int (not atoi)
1571
1572Minor PQF encoding and decoding changes; reformat. PQF decoding: attribute
1573values that contain any non-digits are treated as string attributes
1574(previously decoding only checked for leading character ([0-9]). PQF
1575encoding: attribute string values are not surrounded by double-quotes.
1576
1577--- 4.0.9 2010/05/21
1578
1579New utility for managing threads - thread_create.h.
1580
1581Add socket pipe utility - spipe.h. The socket pipe has same purpose as
1582Unix pipe . Unfortunately Windows pipes do not work on select/poll -
1583but YAZ' implementation do.
1584
1585Fixes for yaz_cond-functions on Windows 7.
1586
1587DLL export more symbols.
1588
1589zoomsh: show record do NOT render opac.
1590
1591Remove *.la files from Debian and RPM packages.
1592
1593--- 4.0.8 2010/05/11
1594
1595Debian package libyaz-dev depends on libgnutls-dev again (was
1596removed in YAZ 4.0.6, but due to Libtool it is still needed
1597even though yaz-config do not list libgnutls libs).
1598
1599ZOOM: Use only one WRBUF for returning string results for
1600ZOOM_resultset. Reduces memory usage for ZOOM in general.
1601
1602ZOOM: ZOOM_connection do not use a shared pointer to
1603ZOOM_resultset after ZOOM_resultset is destructed by
1604user. Reverts to YAZ 4.0.4 behavior.
1605
1606--- 4.0.7 2010/05/04
1607
1608record-conv: fix problem with at least one XSL conversion -
1609due to probably incorrect usage of XML XSL documents.
1610
1611--- 4.0.6 2010/04/29
1612
1613Fix yaz-config for static mode and the use of SSL (gnutls).
1614
1615--- 4.0.5 2010/04/29
1616
1617Forward decl timeval struct in mutex.h and gettimeofday.h.
1618
1619yaz-config: fix 'static' mode linking.
1620
1621--- 4.0.4 2010/04/28
1622
1623Add functions yaz_cond_{create,destroy,wait,signal,broadcast}. These
1624are wrappers for pthreads or Windows. For Windows these are put in
1625a separate DLL: yaz_cond4.
1626
1627libyaz.la (whole source) is compiled with thread. If thread support
1628is enabled enabled, all source of YAZ is compiled with treading support.
1629This allows core utilities such as yaz_log to use thread facilities.
1630Previously (YAZ 3 and YAZ 4 releases), only libyaz_server.la was using
1631thread utilities. This commit moves mutex utilities (mutex.c) from
1632libyaz_server.la to libyaz.la.
1633
1634yaz-json-parse displays leading text until error.
1635
1636--- 4.0.3 2010/04/09
1637
1638Handle HTTP redirect for SRU GET in yaz-client and ZOOM C. Based on
1639patch from Giannis Kosmas.
1640
1641SRU: no longer URL encode SRU database. The URL for an SRU server is
1642a URL and such is alreeady encoded - at least when given with leading
1643http:// or https://. This reverts behavior to YAZ 3.0.50.
1644
1645Support for new MARC XML notation TurboMARC which like MARCXML is a
1646complete representation of MARC/ISO2709.. This one, however, is more
1647compact and allows for faster processing with XSLT. TurboMARC can be
1648used in the marcdisp.h API, from the yaz-marcdump utility and from
1649the API of ZOOM C.
1650
1651yaz-ztest can be configured - via the database - to perform certain
1652delays when it performs operations search, present and single record
1653fetch. This allows testers to make yaz-ztest act as a real or even slow
1654Z39.50 server. Refer to the yaz-ztest man pages for details.
1655
1656--- 4.0.2 2010/03/09
1657
1658wrbuf_destroy allows NULL WRBUF passed to it.
1659
1660Fix CCL qualifier aliases (did not work since YAZ 2.1.56).
1661
1662Add ZOOM_connection_close.
1663
1664No fixed size buffers for ZOOM shell - bug #3257.
1665
1666tstodr: make it work on s390 platform.
1667
1668New icu iterator-functions. The new icu_iter-functions makes it possible
1669to use ICU chains from many threads.
1670
1671yaz-client: better syntax check for show command.
1672
1673--- 4.0.1 2010/01/26
1674
1675New glob file pattern utility. Like POSIX glob. For Windows too. Refer to
1676yaz/file_glob.h.
1677
1678New simple local-file XML include facility which allows file glob-patterns.
1679Refer to yaz/xml_include.h.
1680
1681Utility yaz-json-parse which parses JSON and demonstrates the JSON parser
1682API.
1683
1684ZOOM_record_get supports new parameter "format" which makes it format XML
1685record content.
1686
1687Fix JSON parser WRT start symbol. The start grammar symbol (referred to as
1688JSONText in ECMA-262) is JSONValue, not JSONObject.
1689
1690--- 4.0.0 2010/01/20
1691
1692Windows binaries for YAZ now compiled with Visual Studio 2008 (VC9).
1693Older versions of YAZ was compiled with Visual Studio 6.0 (1998).
1694
1695Update so/DLL to version 4. Windows version builds YAZ4.DLL.
1696POSIX/Unix builds .so with major version 4.
1697
1698Remove old LOG_-defines from log.h. They have been obsolete and
1699undefined by default for the last 5 years.
1700
1701Odr_int is now of type 'long long'. Used to be 'int' in YAZ 3 series.
1702
1703GFS: Remove socket (int *fd) from search_rr handler. The socket
1704descriptor ptr is a facility that allowed a search handler to supply
1705a socket which would serve as a callback - when search was complete.
1706This facility has now been in use for years.
1707
1708COMSTACK API changes: cs_stackerr, cs_addrstr. COMSTACK method cs_stackerr
1709removed. It is not implemented by tcpip or unix COMSTACK, perhaps for ISO
1710SR which was removed 7 years ago. COMSTACK macro / method cs_addrstr now
1711returns 'const char *' rather than 'char *. The returned string is
1712read-only and should not be modified by applications. COMSTACK cs_close is
1713now a void function - it no longer returns int. No applications check for
1714the value and the implementations has always returned 0.
1715
1716ZOOM: use size_t for scan hit counts and str size. Functions
1717ZOOM_scanset_term and ZOOM_scanset_display_term have changed, so that
1718occ (hit count) and len (string length) are now of type size_t pointer
1719rather than int pointer. This is to be able to represent large hit counts
1720and to also just to use the proper type for string length (strlen result).
1721
1722New JSON parser. Refer to include/yaz/json.h .
1723
1724WRBUF API changes.. For size parameters for WRBUF size_t is now used ..
1725Used to be int in some cases. Many wrbuf_-functions used to return an int
1726indicating some length.. These return values were never used. And so they
1727are now void.
1728
1729ODR: odr_malloc, odr_total now takes size_t for size.
1730
1731clone_z_type: fix leak; occurred for encoding failures.
1732
1733--- 3.0.52 2009/12/03
1734
1735tcpip comstack: fix use of uinitialized variable in cs_straddr. This
1736bug was introduced in 3.0.51.
1737
1738--- 3.0.51 2009/12/02
1739
1740tcpip comstack: Remove TCP receiver buffer optimizations for Solaris.
1741
1742tcpip comstack: fix leak for getaddrinfo.
1743
1744Encoding of SRU database is performed by yaz_encode_sru_dbpath_odr or
1745yaz_encode_sru_dbpath_buf. Now used by yaz-client and the ZOOM API.
1746Decoding of SRU "path" database is performed by private function
1747yaz_decode_sru_dbpath_odr . This in turn is used by yaz_srw_decode
1748and yaz_sru_decode in server applications, GFS, yazproxy, metaproxy.
1749
1750yaz-client: honor base command for SRU. Change when database setting
1751is applied for SRU and ensure it is kept when a connection is reset.
1752Change also the way errors are displayed or SRU (decoding of packages).
1753
1754--- 3.0.50 2009/11/02
1755
1756Add support for extra request / response data for SRU codecs and GFS.
1757The Z_SRW_PDU structure has two new members extraResponseData_{buf,len}
1758for extra data response buffer and length. For the GFS, both request
1759and response data (XML) is carried in extra_args and extra_response_data
1760for the search handler. Patch by Ko van der Sloot.
1761
1762ZOOM: For queries that cannot be converted to the specified rpnCharset,
1763ZOOM now returns a diagnostic on the client-side ('invalid query' /
176410010).  This fixes bug #2113.
1765
1766yaz-client fix: If cmdfile is passed to yaz-client (option -f) and that
1767cmdfile included a 'quit' command that would result in a memory violation.
1768
1769--- 3.0.49 2009/10/01
1770
1771Make a number of functions defined in xmlquery.c static. These have
1772never been declared in a public header file (yaz/xmlquery.h) and was
1773made public by mistake.
1774
1775Improve speed of character conversions (iconv utilities). This makes
1776conversions from MARC-8 faster.
1777
1778ZOOM_record_get returns 0 pointer if a MARC record can not be decoded -
1779unless type desired is "raw". This will prevent type "xml" from
1780returning ISO2709 .. Which obviously can not be XML parsed.
1781
1782Fix memory leak in ZOOM that would occur if option apdulog was used
1783on a re-used connection.
1784
1785Frontend server logs HTTP requests.
1786
1787Frontend server now sends Z39.50 close when it times out (sesssion has
1788been idle for too long). Versions 2.0.30 and earlier also sent close.
1789But due to a mistake this was disabled in all versions after that, i.e.
1790the server would just close the socket immediately.
1791
1792yaz-client emits a better message when receiving an unrecognised
1793userInformationField.
1794
1795Skip zero-length subfields when decoding ISO2709. This rare case happens
1796if a record has two FS characters in a sequence. Without this patch
1797there would be a reference beyond char array in using_code_len fragments
1798in marcdisp.c.
1799
1800Fix yaz-marcdump error that would occur if option -n was used (bug #3028).
1801
1802--- 3.0.48 2009/08/28
1803
1804The show command offered by the zoomsh command now takes a 3d optional
1805parameter type which is what is passed to ZOOM_record. If the type
1806argument is omitted, "render" is used.
1807
1808RPN to CQL conv may use USE string attributes (bug #2978).
1809
1810MarcXchange NS is now info:lc/xmlns/marcxchange-v1 .
1811
1812--- 3.0.47 2009/07/08
1813
1814Function yaz_xml2query allows a diagnostic element in the PQF XML
1815representation .. diagnostic@code and diagnostic@addinfo is diagnostic
1816code and additional info respectively.
1817
1818The BER BOOLEAN is now the integral type Odr_bool which still happens
1819to be an 'int'. The BER INTEGER which used to be a plain 'int' is now
1820typedef'd to Odr_int. This is still an integral 'int', but it may be
1821changed to 64-bit via a one-liner in nmem.h (NMEM_64=1). The documentation,
1822ASN-1 compiler as well as programs has been updated to use the new types.
1823
1824--- 3.0.46 2009/06/08
1825
1826zoom: ZOOM_record_get now renders OPAC records when type=xml. Previously
1827only the bibliographic record was rendered. For type=opac, an OPAC
1828record is only returned if it is present.
1829
1830iconv: small fix for encoding of advancegreek.
1831
1832yaz-client: avoid double display of SRU/SRW records (bug #2798).
1833
1834yaz-client: option auto_reconnect=on really reconnects.
1835
1836yaz-client: fix bug #2770 - avoid length limit for auth parameters.
1837
1838server: avoid null ptr ref for for yaz_poll errors.
1839
1840build: fix RPM build for RHEL 5.3.
1841
1842comstack: prefer IPV6 addresses over IPV4 - should refix bug #2350
1843
1844--- 3.0.45 2009/03/31
1845
1846Fixed bug #2709: TCP connect returns Invalid argument.
1847
1848Fixed compilation for mingw.
1849
1850Honor charset for raw records (ZOOM_record_get).
1851
1852Fixed use of errno for threaded mode that was seen on Solaris 10.
1853
1854Fixed argument passing with blanks in value for Windows Service.
1855
1856Disable YAZ' own log rotate by default (no 1 GB limit).
1857The variable l_max_size which specifies the log file limit is set to 0
1858(DISABLED): This is due to the fact that YAZ is most often deployed using
1859logrotate. Also YAZ can not perform log rotate because of unsufficient
1860permissions (setuid).
1861
1862--- 3.0.44 2009/02/17
1863
1864List supported encodings in man page for yaz-iconv.
1865
1866Fixed missing SSL libs for --libs output
1867
1868Re-established OID record syntax application-xml. Nobody should use it
1869but we don't want to change soname because of this symbol being absent.
1870
1871--- 3.0.42 2009/02/02
1872
1873YAZ' RPM spec works for both SUSE Linux Enterprise and RedHat Fedora.
1874
1875Added member named_result_sets for init handler struct for the GFS. This
1876allows a server to disable named result sets.
1877
1878Removed OID record syntax application-xml.
1879
1880Added support for rule-based transliterator for ICU wrapper of YAZ.
1881
1882Fixed bug #1902: yaz-icu XML output.
1883
1884Make YAZ checks Emacs friendly.
1885
1886BITSTRING value shows value. Bug #2346.
1887
1888ISO2709 decoding: skip control characters from indicator data.
1889
1890Omit sort key by default in yaz-icu's output.
1891
1892Allow combined single char options (again) for YAZ' options function.
1893
1894Utility yaz-marcdump got option to display YAZ version (-V).
1895
1896Allow YAZ to use ICU 3.4.
1897
1898Added new ICU test case which illustrates removal of diacritics.
1899
1900--- 3.0.41 2008/12/29
1901
1902Fixed Fixed test that makes VERSION_SHA1 appear on dist versions too.
1903
1904--- 3.0.40 2008/12/29
1905
1906For configure, using option --without-xml2 also disables Libxslt/Libexslt
1907support.
1908
1909Fixed bug #2352: yaz-marcdump crashes for certain record.
1910
1911Added man page 'bib1-attr' which includes list of common Bib-1 attributes.
1912
1913Added support for Danmarc2 to UTF-8 conversion.
1914
1915Added support for ISO5426 to UTF-8 conversion.
1916
1917zget_InitRequest/zget_InitResponse returns GIT SHA1 hash as part of
1918implementation version.
1919
1920Function yaz_version returns GIT SHA1 hash for parameter sha1_str.
1921
1922--- 3.0.38 2008/11/10
1923
1924ZOOM C now only fires one ZOOM_EVENT_SEARCH per search-task. Previously,
1925ZOOM_EVENT_SEARCH was fired for each searchRetrieve Response received.
1926
1927ZOOM C now interprets databaseName option for ZOOM connection as path
1928(SRU "database").
1929
1930Windows version bundled with Libxml2 2.7.1 / Libxslt 1.1.24 / ICU 4.0.
1931
1932Fixed CCL to RPN/PQF conversion which could result in invalid PQF.
1933
1934Dummy Libxml2 types no longer defined in headers of YAZ'.
1935
1936Fixed memory violation for ZOOM C - could occur when SRU diagnostics was
1937received.
1938
1939--- 3.0.36 2008/09/26
1940
1941Various ODR chapter fixes.
1942
1943Windows version uses libxml2 2.6.32+, libxslt 1.1.23+ and ICU 4.0.
1944
1945Added missing source for Windows compilation, mutex.c.
1946
1947Fixed compilation of YAZ for Visual Studio 2008. Bug #2256.
1948
1949For SRU connections in ZOOM all records up to "count" are now fetched.
1950
1951Fixed crash in generic frontend server (and yaz-ztest) which occurred
1952in Windows due to bad error handling for Libxml2.
1953
1954Added facility for sending arbitrary records (ASN.1 any) using
1955ZOOM C's Extended service update. Patch by Sam Reynolds.
1956
1957New options for ZOOM C's connection, logapdu which makes ZOOM log
1958APDUs.
1959
1960--- 3.0.34 2008/06/18
1961
1962YAZ uses GNU TLS without the OpenSSL compatibility wrapper.
1963
1964--- 3.0.32 2008/06/12
1965
1966Fixed memory violation that could occur when decoding UTF-8. This bug
1967was only present in 3.0.30 of YAZ.
1968
1969--- 3.0.30 2008/06/06
1970
1971Implemented SSL sockets using GNU TLS. OpenSSL is still supported, but
1972GNU TLS is used by default (if found).
1973
1974yaz-ztest returns OPAC records if a client asks for OPAC.
1975
1976Improved speed of MARC-8 encoding.
1977
1978Added support for lossy and loss-less MARC-8 encoding.
1979
1980Changed yaz_record_conv_record to be reentrant for XSLT conversions.
1981
1982Added new Windows Service wrapper (sc).
1983
1984yaz-client's itemorder command may now send a file.
1985
1986Fixed yaz-marcdump to allow the use of NS prefix for record element.
1987
1988Added new function yaz_log_xml_errors.
1989
1990Allow (but warn) unknown XML attributes in MARCXML parsing.
1991
1992Handle G1 sequneces in MARC-8 decoding. Bug #2115.
1993
1994The UTF-8 to MARC-8 conversion now uses a different set of characters
1995for Greek symbols. Bug #2120.
1996
1997--- 3.0.26 2008/02/21
1998
1999Added yaz_daemon (daemon.h).
2000
2001Fixed bug #2068: pkg-config trouble
2002
2003Fixed bug #395: ZOOM_record / OPAC record encoding problems.
2004
2005--- 3.0.24 2008/01/28
2006
2007Document --with-xml2 option.
2008
2009Added OPAC XML XSD (etc/opacxml.xsd).
2010
2011Allow glob mask for name attribute in retrieval element for the
2012generic frontend server's retrieval facility.
2013
2014Changed yaz_poll_poll to return yaz_poll_except for all returned events
2015except POLLIN/POLLOUT.
2016
2017Fixed error handling in cs_listen. Bug #2037.
2018
2019--- 3.0.22 2008/01/20
2020
2021Fixed version in yaz/yaz-version.h.
2022
2023Fixed bug #2027: Crash when closing connection.
2024
2025Changed configure so that ICU support is only enabled if only ICU
2026and Libxml2 is available (because the ICU chain is XML based).
2027
2028--- 3.0.20 2008/01/15
2029
2030YAZ now makes ICU utilities for Windows. A separate DLL, yaz_icu3.dll,
2031is built. Only this DLL depends on the ICU runtime.
2032
2033yaz-ziffy is no longer part of YAZ. It is distributed separately by
2034Index Data because ziffy's license is GPL2 rather then 'Revised BSD'.
2035
2036Changed license of CCL module to 'Revised BSD'. After consultation with
2037remaining members of the original EUROPAGATE consortium, we are re-issuing
2038the CCL module without a separate license. The software was developed by
2039Index Data as part of a research project. The special license was included
2040to help feed usage information back to the project consortium to support
2041project evaluation. At this time, the project consortium has long-since
2042disbanded, and the majority of the original principals have retired. At the
2043same time, we have significantly modified the software during the following
2044years, to the point where very practically no original code remains. To
2045simplify re-use of the software, we have contacted those members of the
2046consortium who could be reached, and agreed to re-issue the module as a
2047proper part of the YAZ package.
2048
2049Tcl scripts uses /usr/bin/tclsh as preferred shell.
2050
2051CQL closer to being version 1.2 compliant. CQL also allows free-form
2052terms, such as 'title=a b', and thus, make the CQL parser more CCL-like
2053and user-frendly.
2054
2055Fixed bug in ZOOM_options_getl WRT setting of parameter lenp. This
2056bug could make Extended services handling crash in the ZOOM layer. This
2057bug was only present in YAZ 3.0.18.
2058
2059--- 3.0.18 2007/12/19
2060
2061ziffy uses YAZ' options rather than getopt; getopt is unavailable on
2062some systems.
2063
2064yaz-marcdump reads and writes collection wrapped records.
2065
2066Handle OPAC for record conversion module.
2067
2068Fixes for ICU wrapper.
2069
2070Allow ICU libs to be controlled with --with-icu .
2071
2072--- 3.0.16 2007/11/12
2073
2074Added yaz_poll which is a wrapper for select/poll. When poll is available
2075and non-buggy, it is used, by yaz_poll . This allows more than 1024
2076sockets to be in use.
2077
2078Added ICU wrapper library which exposes ICU http://www.icu-project.org/
2079functionality through an XML based configuration (ICU chain). This system
2080is useful for search facilities such as Pazpar2 and Zebra that needs to
2081perform tokenization of indexed material. The ICU code in a separate
2082library libyaz3_icu.a.
2083
2084Added HTTP tunnel facility for COMSTACK, bug #1752.
2085This is a facility that allows a Web proxy, such as squid, to tunnel
2086Z39.50 traffic. This facility is "transparent" to must applications
2087using YAZ. It's enabled by using pseudo transport connect: followed by
2088the proxy address, followed by command, then follwed by he regular
2089"virtual" addresss. For example,
2090connect:webproxy.com:3128,tcp:z3950.loc.gov:7090/voyager .
2091
2092More MARC-8/UTF-8 conversion fixes. Bugs #1666, #1667, #1778.
2093
2094--- 3.0.14 2007/09/21
2095
2096Fixed bad memory reference in ZOOM_record - cuased by member not being
2097initialized. This was a problem only in YAZ 3.0.12.
2098
2099Fixed bug in conversion from MARC to XML: Non-XML characters in control
2100fields were not removed.
2101
2102Changed the way C code is generated from codetables.xml.  Made a MARC-8
2103conversion trie for each characterSet section rather than codeTable.
2104This is ensure the code can deal with G0/G1 sequences. Use of a newer version
2105of codetables.xml from Larry Dixson, LOC. Bug #1464.
2106
2107--- 3.0.12 2007/09/12
2108
2109ZOOM C now handles SRU surrogate diagnostics (i.e. errors returned
2110from ZOOM_record_error).
2111
2112ZOOM C function ZOOM_record_get returns record schema for type="schema".
2113
2114Implemented HTTP Basic authentication to SRU/GET, SRU/POST and SRW requests.
2115
2116Added new ZOOM C connection option 'sru_option' which specifies SRU version.
2117
2118Better SRW-to-Bib-1 diagnostic mapping.
2119
2120ZOOM C and yaz-client announces SRU version 1.2 by default.
2121
2122yaz-client 'sru' command may specifiy both SRU version and transport (SOAP,
2123GET or POST).
2124
2125Fixed in yaz_sru_decode to allow other version than 1.1.
2126
2127--- 3.0.10 2007/08/22
2128
2129Added support for SRU scan for ZOOM.
2130
2131Added support for the use of the older versions or Extended Service
2132Update in ZOOM. To faciliate this, an option "updateVersion" may be
2133set to the version , 1=first, 2=second, 3=third. The third version is
2134what ZOOM C has used so far. And that, obviously, is the default.
2135
2136Added support for CCL queries in Z39.50 queries sent to the GFS (and
2137therefore in Zebra and in SimpleServer-based applications).  The new
2138<ccl2rpn> element in a GFS configuration file, if present, names a CCL
2139qualifier file used to transform incoming CCL queries into Type-1 RPN,
2140which is passed into the back-end search callback function.
2141
2142Added support for HTTP Basic authentication in clients: the SRU/W
2143codec encodes the username/password elements of the PDU structure
2144appropriately, and these may be set using the "user" and "password"
2145options in ZOOM-C applications (the same options that are used for
2146Z39.50 authentication).
2147
2148--- 3.0.8 2007/06/25
2149
2150Fixed bug #1208: SSL appears to be broken in ZOOM.
2151
2152Fixed bug #1206: Libxml2 include path weirdness.
2153
2154Added oid_name_to_dotstring.
2155
2156Allow elementSetName to be specified for ZOOM C record update.
2157
2158Allow waitAction to be specified for ZOOM C based for Extended Services.
2159
2160Fixed NULL ptr reference bug in yaz-ztest - caused by omitted record
2161syntax OID. Bug introduced in YAZ 3 series.
2162
2163Updated WIN32 build to include Libxml2 2.6.28 / Libxslt 1.1.19.
2164
2165--- 3.0.6 2007/06/06
2166
2167Fixed bug #1157: yaz-client does not read .yazclientrc from current
2168directory. yaz-client now reads commands from file given by option -f
2169if specified; then tries to read .yazclientrc in current directory.
2170Failing that, it reads .yazclientrc from user's home directory.
2171
2172Added support for correlationInfo Note and ID for Record Update via
2173ZOOM C.
2174
2175Added yaz-client command querycharset which specifies character set for
2176query terms for Z39.50 RPN queries and Z39.50 Scan Requests
2177(termListAndStartPoint).
2178
2179Charset ISO5428:1984 is an alias for ISO5428-1984.
2180
2181Implemented a way to perform scan in a result set using Z39.50. This
2182is achieved by attaching the result set name in the characterInfo
2183(type InternationalString) of OtherInformation in the Scan Request PDU.
2184The result set is identified in the otherinformation by the new OID:
2185 USERINFO, Z3950_PREFIX.10.1000.81.4, "Scan-Set
2186This allows for scan in result set and faceted search . Zebra did some
2187of this in the APT term using attribute type 8 and value being result
2188set. Using the OtherInformation approach for this is cleaner and easier
2189to work with in proxies and the like. This facility can be used in
2190yaz-client using new command setscan which takes a result set as first
2191argument, start position (APT) as second.
2192
2193Changed decoding of SRU XML packed records to deal with servers that
2194have recordData with XML data with multiple root nodes. Also make
2195comparison for recordPacking case insensitive. Again, one server
2196returns "XML" where others return "xml".
2197
2198For SRU responses allow Content-Type application/xml as well as text/xml.
2199
2200--- 3.0.4 2007/05/21
2201
2202Fixed bug in character set conversion of BER strings. Bug introduced
2203in 3.0.0.
2204
2205--- 3.0.2 2007/05/08
2206
2207For OIDs use Odr_oid type everywhere, i.e. do not assume Odr_oid=int.
2208
2209For OID class, use oid_class consistently.
2210
2211Fixed external handling for SUTRS and Explain records (bug appeared in 3.0
2212series).
2213
2214Added partial support for ISO5428-1984, which is the "Greek alphabet coded
2215character set for bibliographic information interchange". By Giannis Kosmas.
2216
2217Added documentation on new OID API.
2218
2219--- 3.0.0 2007/05/02
2220
2221Changes to generic frontend server interface: added new member
2222'query_charset' for bend_initrequest structure. A backend init handler
2223should set this member to its native character set for query terms.
2224When defined, the frontend server logic will announce this character set
2225to a client if the negotiationModel bit is set by the client. All server
2226implementors are encouraged to specify this. If a backend server does not
2227specify this a warning is issued using yaz_log(YLOG_WARN,..).
2228
2229Added CCL utility to remove terms (stop words) from resulting RPN
2230tree. This is handled by functions with prefix ccl_stop_words_ .
2231
2232New ZOOM C option, "rpnCharset", which allows client-side conversion of
2233terms in RPN queries.
2234
2235Clean-up the CCL API. Moved some internal structures from ccl.h to
2236private header cclp.h. Changed ccl_parser_create so that a Bibset must
2237be supplied. Removed tokenize API from ccl.h - including ccl_parser_find.
2238This is replaced by ccl_parser_find_str which takes a string instead.
2239
2240Split YAZ library into two libs : libyaz.la and libyaz_server.la.
2241libyaz.la is the core of YAZ except the generic frontend server and
2242does not depend on POSIX threads anymore. libyaz_server.la is the
2243generic frontend server facilities and uses POSIX thread functionality
2244if available. The libyaz.la no longer depends on POSIX threads because
2245the number of global structures is limited. NMEM no longer re-uses blocks
2246between threads ; it simply free's memory immediately but allocates in
2247"large" chunks as usual. We don't expect any performance penalties
2248because of this. The yaz_log system is still using a global log_level so
2249caution must be taken when modifying it with yaz_log_init_.. +
2250yaz_log_mask_str. This, however, should not cause any trouble because
2251these functions are called during initialization of application code
2252anyway. `yaz-config --libs  server` returns libs for server applications;
2253`yaz-config --libs` returns libs for non-server applications.
2254
2255New OID database - with public definitions in oid_db.h. Removed old OID
2256database including the head oid.h and definitions such as enum oid_value
2257and struct oident. The new OID database uses the same string names as
2258before but the 'protocol' is gone. There are now only two representations
2259raw OID (int *) and string. Functions with prefix yaz_string_to_oid
2260converts from string to OID; functions with prefix yaz_oid_to_string
2261converts the other way.
2262
2263Change to emit_term() in CQL-to-PQF query translation: when a term has
2264the /regexp relation modifier, do not process it for leading and
2265trailing "^" and "*", which have quite different meanings in regular
2266expressions.
2267
2268Attempted fix of bug #976: Segfault in yaz_iconv. The yaz_iconv function
2269write handlers no longer carries a 'last' parameter. This will make
2270yaz_iconv flush "less" characters. A flush is performed by call to
2271yaz_iconv(cd, 0, 0, &outbut, &outbytesleft) .
2272
2273Definition of wrbuf_diags moved to querytowrbuf.h. Function wrbuf_put_zquery
2274removed, because function yaz_query_to_wrbuf does the same.
2275
2276API changes to WRBUF. wrbuf_free removed; replaced by wrbuf_destroy. And
2277wrbuf_puts no longer appends '\0'. Use wrbuf_cstr to get C-string out.
2278
2279Deprecated MARC utility functions removed.
2280
2281Changed prototype of yaz_marc_decode_buf: const char for result and size_t
2282for rsize.
2283
2284Branch split: YAZ_2_1_55_branch
2285
2286--- 2.1.54 2007/03/16
2287
2288Fix to ZOOM-C so that transparent reconnection is properly handled on
2289connections that are in asynchronous mode.
2290
2291Fixed compilation on OpenBSD 4.0.
2292
2293Large strings in GRS-1 records are now properly displayed in yaz-client.
2294
2295Added character conversion support for "advancegreek"; based on patch from
2296Giannis Kosmas.
2297
2298Fixed yaz_iconv to return YAZ_ICONV_EINVAL if an incomplete MARC-8 combo
2299sequence is met. Before the error was not set so it would be unknown.
2300
2301Adjust yaz-marcdump MARC reader so that it skips until record separator
2302is read
2303
2304--- 2.1.52 2007/03/07
2305
2306ZOOM-C: Removed hardcoded limit of 1024 sockets in ZOOM_event_sys_poll().
2307Note that ZOOM_event_sys_select() still has the limit due to the fixed-size
2308fd_set structure used as a bitmask for the FDs to be selected on.
2309
2310Using ACX_PTHREAD macro to check for POSIX threads.
2311
2312Fixed have-vsnprintf check.
2313
2314--- 2.1.50 2007/02/23
2315 
2316Fixes for configure on BSD. Bug #900.
2317
2318Added snprintf/vsnprintf wrappers for systems that don't have
2319limits (heavens forbid).
2320
2321Fixed bug in ZOOM-C's event and task handling. If a ZOOM task was
2322created before all previous tasks were completed and removed from the
2323task queue, the new task could be removed by a mistake.
2324
2325Fixed bug #615: Document retrievalInfo facilities for Frontend Server.
2326
2327Implemented pass-through CQL-to-PQF conversions. Bug #861.
2328
2329Fixed bug #832: Problem with MARC/charset in yaz-client.
2330
2331Fixed bug #668: save command line history for yaz-client.
2332
2333Fixed bug #830: pkg-config support.
2334
2335--- 2.1.48 2007/01/23
2336
2337Extended ZOOM result set options with two options that may be read by
2338a client: resultSetStatus and presentStatus with values as specified for
2339the ASN.1. See:
2340http://www.loc.gov/z3950/agency/markup/04.html#Search-status
2341
2342Fixed bug #827: Using SSL fails on Debian etch.
2343
2344Fixed bug #826: Weird looking chars for set of MARC records.
2345
2346Implemented alternative Item Order package for ZOOM. If option "doc" is set,
2347that is treated as an ItemOrder with itemRequest being an XML document
2348external. The value of "doc" is the content.
2349
2350Extended the GFS search facility. New member of bend_search_rr
2351'estimated_hit_count' signals that hits is known to be an estmate
2352(higher or lower than real hit count). New member 'partial_resultset'
2353signals that the search was partial (hit count is lower or equal than
2354real hit count). For Z39.50, the information is stored in resultSetStatus
2355member of SearchResponse APDU. For SRU, the information is signalled
2356via SRU diagnostic 59: "Result set created with valid partial results
2357available".
2358
2359Switched from jade/pdfjdaetex to dblatex for Docbook documentation in PDF.
2360
2361--- 2.1.46 2007/01/13
2362
2363Implemented bug #806: Deal with HTTP clients sending LF in HTTP headers.
2364
2365Added ZOOM_connection_peek_event.
2366
2367Implemented Generic select hook for ZOOM (bug #803). This is achieved with
2368the following new functions:
2369 ZOOM_event_nonblock, ZOOM_connection_process,
2370 ZOOM_connection_get_{socket,mask,timeout},
2371 ZOOM_connection_fire_event_{timeout,socket}.
2372The existing blocking event handler, ZOOM_event, is a wrapper for the
2373+ blocking ZOOM_event_sys_{poll,select}.
2374
2375Implemented function ccl_xml_config which parses XML version of CCL
2376configuration (bug #798).
2377
2378Fixed bug #797: yaz_marc_write_xml does not honor character conversion.
2379
2380Added timings utility (yaz/timing.h)
2381
2382--- 2.1.44 2007/01/03
2383
2384Added yaz_marc_write_xml which creates MARCXML/MarcXchange record as
2385Libxml2 tree.
2386
2387Fixed bug #779: Rotation of apdu.log fails.
2388
2389Fixed for character set conversions:
2390  Unicode to MARC-8 conversion for certain less preferred UTF-8 sequences.
2391  Honor G1 set in MARC-8 decoding.
2392
2393--- 2.1.42 2006/12/17
2394
2395Fixed bug #775: char conversion does not handle Alternative UTF-8
2396sequences.
2397
2398Implemented function yaz_marc_read_line which parses MARC line format
2399records. There is a wealth of formats out there. So far, this function
2400reads line records produced by yaz_marc_write_line.
2401
2402yaz-marcdump's options -x, -X, -I, -e have been replaced with the
2403more generic and easier to remember(!) options: -i format and -o format
2404which specifies input format and output format respectively - where
2405format is one of "marc", "marcxml", "line", "marcxchange".
2406
2407Added 'check only' option for MARC utilities. Option -n for yaz-marcdump
2408does not print anything except warnings for records.
2409
2410For yaz-marcdump, added support for MARC split into files (-s) with a given
2411chunk size (-C).
2412
2413Changed the SRU update structures and codecs to reflect the SRU pre 1.0
2414spec, at http://www.loc.gov/standards/sru/record-update/
2415This has changed the binary layout of the following structs:
2416Z_SRW_extra_record, Z_SRW_updateRequest, Z_SRW_updateResponse and
2417bend_update_rr . Patch by Ko van der Sloot.
2418
2419Added GFS utility function bend_assoc_is_alive which returns 1 if
2420association is still alive (client is connected); 0 otherwise (client
2421closed connection). This allows busy servers to stop working for
2422impatient clients.
2423
2424Added ziffy: the promiscuous Z39.50 APDU sniffer. until now, ziffy has
2425been a separate piece of software. This version of ziffy has been modified
2426to fit with YAZ. ziffy is copyright Rocco Carbone and covered by GPL v2.
2427
2428Fixed bug #740: Handle SRU records referring to xmlns's outside recordData.
2429
2430Fixed bug #722: Allow Z39.50 Init Options to be specified / retrieved.
2431Client code may now interrogate options such as "init_opt_sort" to
2432find out whether the server claims to support various options.
2433
2434--- 2.1.40 2006/11/27
2435
2436Added utilities yaz_{set,get}_esn to set/get element set name from
2437record composition.
2438
2439Removed the build of libyazthread.la. The libyaz.so is the threaded version
2440of YAZ and has been so since YAZ 2.1.10.
2441
2442Implemented ZOOM_record_error which returns error information for
2443record (surrogate diagnostic).
2444
2445--- 2.1.38 2006/10/31
2446
2447Updates for SRU Update by Ko van der Sloot:
24481. Changed name from "operation" to "action"
24492. Fixed that that "recordIdentifier" was called "recordId". Kept the old
2450versions in the code, marked as 'backward compatible'.
24513. Added diagnostics for SRU Update.
2452
2453Fixed bug #709: Records are fetched in wrong format when tasks are queued.
2454
2455Fixed bug #707: CQL->RPN ignores lines with leading spaces.
2456
2457Fixed bug #706: XML hex encoding UTF-8 chars out of range 0-255.
2458
2459For GFS, fixed problem with SRU diagnostic 'First record position out of
2460range' being issued for 0 hits.
2461
2462zoomtst10 part of Windows Build.
2463
2464--- 2.1.36 2006/10/13
2465
2466Implemented yaz_filepath_comp which splits a path into file path
2467components (required by Zebra 2.0.3+).
2468
2469Change wording of YAZ license to the 'Revised BSD License'. YAZ has used a
2470BSD inspired license until now so this should not have any real impact on
2471anybody. See http://www.opensource.org/licenses/bsd-license.php
2472
2473Fixed bug #687: Missing log lines.
2474
2475Fixed bug #678: CQL to PQF translation does not preserve double-quote
2476escaping.
2477
2478Fixed bug #689: SRU diagnostics to be added.
2479
2480Implemented new ZOOM function, ZOOM_connection_is_idle, which checks
2481whether a connection is idle (no more work do do).
2482
2483--- 2.1.34 2006/10/04
2484
2485Change type of optval from long to int for invocation of setsockopt with
2486the SO_REUSEADDR option. Thanks to Ateeq A. Altaf, Talis.
2487
2488Added support for specifying the max log file size for the Generic
2489Frontend Server. The size is given with option -r.
2490
2491--- 2.1.32 2006/09/21
2492
2493Fix problem introduced in YAZ 2.1.28 WRT unix sockets in the ZOOM code.
2494
2495--- 2.1.30 2006/09/17
2496
2497Fixes for getaddrinfo use, Bugs #655 + #660. These bugs were introduced
2498in YAZ 2.1.28.
2499
2500Fixed bug in Generic Frontend Server that could cause a server to stop
2501accepting new connections. Bug only seen on dual CPU Windows 2003 server.
2502
2503For the generic frontend server, the maximum record size is used as maximum
2504size of incoming packages (SRU + Z39.50). The value until was previously
2505only used in Z39.50 Init negotiation and, later, in a session controlled
2506sizes of records returned. This is controlled using -k option. It can be
2507specified, per server, with element maximumrecordsize in YAZ' GFS XML config.
2508
2509--- 2.1.28 2006/09/04
2510
2511TCP/IP comstack uses getaddrinfo now to resolve names. It should be IPV6
2512friendly now.
2513
2514Fixed bug #644: Using Non Reentrant gethostbyname causes SIGSEGV.
2515
2516New option for yaz-marcdump -lpos=value which allows setting a portion
2517of MARC header to a certain value.
2518
2519Fixes for MARC generation when encoded as MARC-8 (bug 642, 643).
2520
2521ZOOM-C reads option extraArgs. If set the value of extraArgs is appended to
2522SRU URI (POST/GET). Value must be URL encoded, such as x-id-a=v1&x-id-b=v2 .
2523
2524--- 2.1.26 2006/08/15
2525
2526Fixed problem with SRU mode type (soap, get, post) for yaz-client
2527and ZOOM-C.
2528
2529Fixed problem another problem with ZOOM_EVENT_RECV_RECORD . Bug #626.
2530
2531--- 2.1.24 2006/08/08
2532
2533Fixed MARC ISO2709 encoding routines to deal with character set
2534conversion.
2535
2536Minor changes to GFS logging. Database included in search request log
2537line.
2538
2539Fixes for ZOOM-C: event ZOOM_EVENT_RECV_RECORD was not generated for
2540cached/multiple records.
2541
2542Shared libraries are built by default on Unix+configure.
2543
2544Changed cql2pqf transformation to use a different evaluation order. The
2545new order is: always, relation, structure, position, truncation, index
2546and relationModifier. Old order was: always, relation, relationModifier,
2547structure, index, position, truncation. Note that the the latter ones
2548override former ones for identical attributes.. The new scheme means that
2549it is possible to override any existing attribute with a relationModifier.
2550And also that it is possible to override everything for the index rule
2551(except the ones listed in relationModifier). No order is perfect but this
2552one, we believe, covers more real cases.. The "always" should have been
2553called "default", since the attributes there can be overridden with all
2554the rest.
2555
2556For Libxml2 and friends, YAZ defines YAZ_HAVE_{XML2,XSLT,EXSLT) in the
2557compilation phase, but also for yaz-config --cflags output. This allows
2558us to have public headers with Libxml2 stuff in them . It should also,
2559eventually, make Libxml2 checks redundant in packages using YAZ, such
2560as yazproxy.
2561
2562--- 2.1.22 2006/06/15
2563
2564Changed SRU update structure bend_update_rr so that SRU diagnostics are
2565stored in uri, message and details.. Previously diagnostics were stored
2566in errcode, errstring. Patch by Ko van der Sloot. Breaks binary
2567compatibility.. but he's probably the only one affected, so.
2568
2569Added support for CCL, compiled on the client side, in ZOOM-C.  This
2570is invoked using ZOOM_query_ccl2rpn() with the CCL configuration as
2571input; the resulting query objects can be used for for searching with
2572ZOOM_connection_search() and scanning with ZOOM_connection_scan1().
2573
2574YAZ' configure searches for OpenSSL by default.
2575
2576SSL comstack uses SL_CTX_use_certificate_chain_file rather than
2577SL_CTX_use_certificate_file. See
2578http://lists.indexdata.dk/pipermail/yazlist/2006-June/001615.html
2579for more info. Thanks to Ko van der Sloot.
2580
2581--- 2.1.20 2006/06/02
2582
2583Bug #600: SRU GET, POST support for yaz-client. Introduced
2584command 'sru' which selects method SOAP/GET/POST.
2585
2586Allow missingValueAction to be specified for the sortspec string -
2587function yaz_sort_spec. By default, the missing value action is null.
2588Use ! to specify "abort". Use = followed by stringvalue to specify default
2589value.
2590
2591Ensured that Present-handler (if defined) is called in GFS before any call to
2592fetch-hhndler.  This now includes piggy-backed presents as well as SRW/U
2593searchRetrieve requests.
2594
2595Documentation for YAZ is now based on the Docbook XML/XSLT using
2596xsltproc + N Walsh's stylesheets. It means that the CVS version of YAZ
2597is no longer depending on jade/openjade or docbook-to-man scripts.
2598PDF is no longer part of the distribution - but can optionally be
2599made using DSSSL/jadetex or FOP.
2600
2601Added retrieval handling support in Generic Frontend Server to support
2602conversion between MARC/XML as well as XSLTtransforms. See
2603etc/yazgfs.xml for an example.
2604
2605Added Authentication support to Generic Frontend Server in SRU
2606mode. Authentication using HTTP Basic is supported, as is the use
2607of 'x-username' and 'x-password' parameters in the request itself.
2608
2609Added support for a new character set MARC8s identical to MARC8 except
2610that it converts combined characters to single Unicode characters in the
2611Latin-1 range (when possible).
2612
2613--- 2.1.18 2006/04/24
2614
2615ASN.1 compiler 0.4: generates brief Doxygen file header for
2616generated .h/.c files.
2617
2618Utility yaz_iconv now supports conversion to MARC-8.
2619
2620New facilities for the MARC module. The reading - and writing of
2621content are separate methods for the yaz_marc_t handle. The following
2622read functions are available: yaz_marc_read_iso2709 (Reads MARC in
2623ISO2709 format), yaz_marc_read_xml (reads MARC in MARCXML/MarcXchange
2624format). Write functions have prefix yaz_marc_write_.. The existing
2625utilities yaz_marc_decode_wrbuf and yaz_marc_decode_buf are still
2626available. Removed support for OAI-MARC and simplexml (not the
2627simplexml from PHP5).
2628
2629Added a new ZOOM event type ZOOM_EVENT_END which signals no more events
2630to be returned for this connection.
2631
2632--- 2.1.16 2006/03/31
2633
2634Allow multiple languages and charsets to be specified with
2635yaz-client. Each item must be separated by comma (NO BLANKS). E.g.
2636  negcharset iso-8859-1,utf-8
2637
2638Translation of proximity nodes from CQL into PQF now works.
2639
2640Moved to automake 1.8, 1.9.
2641
2642Added function yaz_log_set_handler which allows a log handler to be
2643installed. This handler will be called for all log messages.  Output
2644to file is also produced; but that can be disabled by passing NULL
2645fname to yaz_log_init_file.
2646
2647Fixed another problem with MARC-8 -> ISO-8859-1 conversions. Bug #537.
2648
2649For SRW (including GFS), accept application/soap+xml as content-type
2650for SOAP msg.
2651
2652For GFS in SRU mode, an empty stylesheet in SRU URL (&stylesheet=&)
2653produces NO stylesheet reference even if a default stylesheet is specified
2654in GFS XML config.
2655
2656--- 2.1.14 2006/03/14
2657
2658Updated Windows package to include yazd.dll + yazd.lib for the
2659Development component.
2660
2661If the environment variable YAZ_LOG is set, then it is used as a
2662string indicating the default level of logging to use if not
2663overridden by calls to yaz_log_init() or yaz_log_init_level().  If
2664it's not defined, then the manifest constant YLOG_DEFAULT_LEVEL is
2665used as before.  So, for example, to omit warnings from YAZ logging,
2666        export YAZ_LOG=-warn
2667
2668cql_transform() now map structure and other attributes before indexes,
2669so that index-specific structures and other attributes can override
2670defaults.  So now a combination of mapping specifications such as:
2671        structure.* = 4=1
2672        index.dc.date = 1=date-modified 4=5
2673does the right thing.
2674
2675cql_transform() now also respects the "always" mapping specification,
2676which establishes an initial set of attributes to be used for all
2677terms except where overridden by more specific attributes associated
2678with the index, relation or modifier.
2679
2680Added SRU-GET and SRU-POST support for ZOOM C. Option "sru" specifies
2681which mode to use; one of "post", "get" or "soap" (SRW, default).
2682
2683Fixes for yaz_iconv routines: changed trie-based character set conversions
2684to use only non-negative values for bit fields due to Sun's C compiler not
2685supporting negative values.
2686
2687Fixed bug in character set conversion yaz_iconv. Some three byte UTF-8
2688sequences where not read correctly. Fix by Rustam Usmanov.
2689
2690Updated win/makefile to use options, settings which makes things
2691compile with VS C 2005.
2692
2693--- 2.1.12 2006/02/01
2694
2695Fixed bug in yaz_oi_update which used incorrect value for categoryValue.
2696
2697In ZOOM socket code, use select instead of poll on MacOSX.
2698
2699ZOOM-C now support client-side compilation of CQL into RPN that is
2700sent to the server, enabling CQL to be used against all Z39.50
2701servers.  Use ZOOM_query_cql2rpn() to set the compiled CQL into a
2702ZOOM_query object, and submit it using ZOOM_connection_search().
2703The CQL-to-RPN translation uses a configuration file, the name of
2704which must be specified in the Connection's "cqlfile" option.
2705
2706ZOOM-C also support CQL scanning, via the new ZOOM_connection_scan1()
2707function, which takes as its start-term parameter a ZOOM_query object
2708(which may have had either CQL or RPN set into it).
2709
2710
2711--- 2.1.10 2005/11/29
2712
2713Added ZiNG Update Support. New codecs are defined in srw.h. Extended the
2714GFS to support this as well. Backend handler, bend_srw_update, does the
2715update work. Code contributed by Ko van der Sloot.
2716
2717Allow retrieval of Search Result-1 information in ZOOM by the use of
2718options that are attached to a result set. ZOOM documentation updated
2719accordingly.
2720
2721Fixed bug #416: First/second comb characters not handled in the MARC-8 to
2722UTF-8 conversion. Patch by Raj Patel.
2723
2724Added option -m to GFS to control formatting of timestamps in log file.
2725
2726Added 'exit' as synonym for 'quit' in yaz-client
2727
2728Added support for specifying SRW resultSetId + resultSetIdleTime in a
2729Generic Frontend Server's search handler. Refer to include/yaz/backend.h
2730for the new members. Patch by Ko van der Sloot.
2731
2732Added support for SRU POST. It is supported for content-type
2733application/x-www-form-urlencoded only. Patch by Ko van der Sloot.
2734
2735Do not build the separate Multi-threaded (MT) library libyazthread.la.
2736Instead make the library libyaz.la multi-threaded. Threading as a whole
2737can still be disabled by configure option --disable-threads. Previosly,
2738with older GLIBCs there were problems with MT libs under Apache. This
2739has now been fixed a long time ago.
2740
2741Fixed bugs in yaz_log that occurred on Sparc Solaris in Multi-threaded
2742applications.
2743
2744CQL module modified to be case insensitive for relations/indexes/operations.
2745
2746Fixed bug in CQL transform code: incorrect value relationModifieder
2747was used.
2748
2749Added 'show all' command for yaz-client which retrieves all results
2750for last search.
2751
2752Added new yaz-client, xmles, which takes a (private) OID and
2753a document to be sent as an extended service request.
2754
2755Describe new yaz-client commands wait_response and set_auto_wait.
2756
2757Increase TCP/IP listener backlog from 3 (which I am guessing was
2758copied from the SunOS manual entry way back when) so SOMAXCONN, so
2759that the socket will queue as many incoming connections as it's able
2760to handle ongoing connections.  In other words, it will never now
2761refuse a connection that it would be able to handle merely because
2762it's not got around to accepting() enough of the pending connections
2763yet.  This is the behaviour anyway under Linux, where the listen()
2764argument is ignored; but not under BSD and on systems such as
2765MS-Windows that use BSD-derived TCP/IP stacks.  The behaviour of
2766YAZ-based servers should now be uniform across operating systems in
2767this respect.
2768
2769yaz-marcdump uses 64-bit file access on some systems. This is enabled
2770on Linux and other Unix variants where _FILE_OFSET_BITS=64 is supported.
2771This allows yaz-marcdump to read large MARC batches (>2 GB).
2772
2773Modified all YAZ source files - except the source which is auto-generated
2774by tools - to use spaces rather than TABS. Emacs/VIM trailer added to
2775all source files.
2776
2777Add ZOOM_connection_option_getl() and ZOOM_options_getl(),
2778corresponding to the existing *_setl() function.  These allow option
2779values containing arbitrary valuues.
2780
2781Add ZOOM_resultset_sort1(), which should ALWAYS be used in place of
2782ZOOM_resultset_sort() in new applications.  Its behaviour is identical
2783except that it returns an indicator of whether or not the sort
2784criterion was accepted (0 for OK, -1 for invalid).
2785
2786--- 2.1.8 2005/06/07
2787
2788Fixed bug in yaz_marc_decode_buf. By mistake the routine appended
2789MARC output rather than returning "new" buffer.
2790
2791yaz-client warns about unknown init options.
2792
2793Fixed bug #371: "options concurrentOperations ignores concurrentOperations"
2794
2795--- 2.1.6 2005/05/24
2796
2797Added support for SRW sort in Generic Frontend Server. Patch
2798by Ko van der Sloot. Member srw_sortKeys in bend_search_rr holds
2799sortKeys - or NULL if none is provided.
2800
2801Fixed bug #307: It was impossible to specify indefinite/no timeout
2802for ZOOM_event. Special timeout value -1 now means indefinite timeout
2803(i.e.  no timeout).
2804
2805Added support for multiple languages and charsets to be specified in
2806ZOOM. Each charset/language is separated by a blank. If negotiation is
2807in effect in init-response, Option
2808"negotiation-charset-in-effect-for-records" set to 1(true) or 0(false).
2809Code based on patch by Vasiliy Osadchuk.
2810
2811Fixed bug #306: infinite recursion that occurred when calling
2812yaz_log_level_init as the first call (before other log level or
2813nmem_init calls)
2814
2815Fixed bug in scan handling in front end server: if preferred-Position-In-
2816Response was non-present, a NULL pointer referece was performed.
2817
2818--- 2.1.4 2005/04/26
2819
2820Changed include/yaz/diagbib1.h and added include/yaz/diagsrw.h with
2821diagnostic messages+codes for Bib-1 and SRW. Preprocessor defines are
2822now defined for all those error codes. So instead of putting 109 in
2823your program you'd use YAZ_BIB1_DATABASE_UNAVAILABLE. The messages
2824are generated from a .csv - file. See src/bib1.csv and srw/srw.csv.
2825
2826Modified the yaz-marcdump utility to skip garbage bytes between MARC
2827records in a file.
2828
2829Fixed bug - uninitialized memory - due to bad code for fix of bug #272.
2830
2831Program yaz-client now exits and produces an error message if multiple
2832Z39.50 servers are specified on the command line (none or one allowed
2833only).
2834
2835Program yaz-marcdump skips garbage bytes between ISO2709 records rather
2836than abort.
2837
2838--- 2.1.2 2005/03/16
2839
2840Fixed bug #273: Update for recent MARC-8 -> UNICODE changes.
2841
2842Fixed bug #272: Preserve spacing for CCL terms.
2843
2844--- 2.1.0 2005/03/14
2845
2846Added support for virtual hosts and multiple backend servers for
2847the YAZ frontend server. The configution is XML based and
2848support specificition of CQL to RPN mappings and explain information.
2849See section "Virtual Hosts" in the YAZ manual.
2850
2851Extended OPAC display utility. OPAC display utility renders
2852bibliographic (MARC) record as well. Added yaz_opac_decode_wrbuf
2853to supplement yaz_marc_decode_wrbuf.
2854
2855Fixed a bug in MARC decoder that could caused it to crash for some
2856invalid MARC records. More diagnostics and warnings where added in
2857XML output (warnings, etc are stored in comments).
2858
2859--- 2.0.34 2005/02/08
2860
2861Fixes for UNIX domain sockets. Bug #261.
2862
2863Fixes for MARC-8 to UTF-8 conversion. Bugs #258 and #260.
2864
2865Fixed bug #263: YAZ MARCXML dump shows extra spaces after control fields.
2866Added yaz_marc_subfield_str which defines subfield lead string which is
2867used in YAZ_MARC_LINE format. Default string is blank+$. Added
2868yaz_marc_endline_str which defines end of fields string used in
2869YAZ_MARC_LINE format. Default string is newline.
2870
2871Experimental support for MarcXChange. This format can be produced
2872by yaz-marcdump and is implemented in yaz_marc_decode - functions.
2873 http://www.bs.dk/standards/MarcXchange.xsd
2874
2875Added yaz-client commands scansize that sets maximum number of
2876entries to be returned by scan.
2877
2878--- 2.0.32 2005/01/11
2879
2880Added support for SRW scan in yaz-client and Generic Frontend Server.
2881
2882* Added whereInList member to SRW Scan Term.
2883
2884* Changed Z_SRW_scanRequest to be able to carry both CCL and PQF.
2885
2886Fixed NMEM system to return aligned blocks on the smallest boundaries
2887that are suitably aligned for all possible types on the particular
2888architecture YAZ is being built for.
2889
2890--- 2.0.30 2005/01/04
2891
2892Fixed numerious warnings that was issued with newer versions of GCC.
2893
2894Fixed NMEM system to return aligned blocks on 8 byte boundaries rather
2895than 4 bytes, since 4 may not be enough on some systems such as GCC 3.4.3
2896on Solaris.
2897
2898Make YAZ Generic Frontend Server slightly faster.
2899
2900Enhance (and reduce) logging for Generic Frontend Server.
2901
2902Revert YAZ log system so that it flushes every write operation
2903by default. (YAZ 2.0.26 and earlier verisons did that). Bug #240.
2904
2905Modified the YAZ logging system. The LOG level defines use YLOG_ prefix
2906instead of LOG_, due to name clash with syslog(3). LOG_ are still
2907present. New applications should define YAZ_USE_NEW_LOG=1 - this
2908will effectively disable old definitions.
2909
2910--- 2.0.28 2004/11/09
2911
2912Added yaz_log_time_format which specifies log format using
2913strftime(3).
2914
2915Added yaz_log_module_level which returns mask for a module. Value
2916is non-zero mask a if module is enabled; zero if disabled.
2917
2918* Fixed bug #148: CQL parser may leak. A few prototypes were changed
2919in include/yaz/cql.h.
2920
2921Fixed bug #176: Dont throw diagnostics on empty SRU args.
2922
2923Fixed bug #175: surrogate diagnostics in SRW lacking NS.
2924
2925Fixed bug #172: RPM builds does not enable SSL.
2926
2927Doxyfile.in part of dist. Doxyfile generated by configure.
2928
2929Configure aborts if any of --with-xml2, --with-openssl, --enable-tcpd
2930are given and the corresponding component does not exist.
2931
2932Extend CCL documentation in YAZ reference. Describe r=r.
2933
2934--- 2.0.26 2004/10/01
2935
2936Fixed MARC->MARCXML conversion to properly deal with
2937fields, subfields, indicators having non-ASCII characters.
2938
2939Fixed MARC->MARCXML conversion so that ASCII control characters
2940except TAB,CR,LF are removed from resulting XML (XML 1.0 does not
2941support these).
2942
2943Added YAZ GFS support for conversion from Z39.50 surrogate
2944diagnostics to SRW surrogate diagnostics.
2945
2946Bug fix: YAZ GFS did not return schema in explainResponse.
2947
2948--- 2.0.25 2004/09/30
2949
2950The YAZ GFS when converting SRW/SRU requests to Z39.50 structures
2951now converts recordSchema to elementSetName as well as schema URI.
2952
2953Fixed bug in COMSTACK that prevented HTTP request packages from being
2954decoded properly.
2955
2956--- 2.0.24 2004/09/29
2957
2958Added CCL facility r=r "range" which is similar to r=o "ordered" but
2959does not require white-space before and after the dash in a range, e.g.
2960x=-1990 is equivalent to x <= 1990 iff r=r, but equivalent to x= -1980
2961iff r=o.
2962
2963Fixed a few AC_TRY_LINK configure tests that did not operate properly
2964due to new GCC removing "redundant" code.
2965
2966Added yaz-client commands scanpos and scanstep that sets preferred
2967position and step-size for scan.
2968
2969Macro YAZ_INIT in yaz.m4: option --with-yazconfig renamed to --with-yaz.
2970
2971Added CCL utility ccl_qual_buf which parses one or more CCL
2972spec lines in a buffer.
2973
2974Added CCL utility ccl_qual_line which adds CCL qualifier line consisting
2975of name and value - ignoring empty lines and comments.
2976
2977On Windows, the debug DLL/import lib is now named yazd.{dll,lib}.
2978
2979Added odr_get_element_path which returns current element path for an
2980ODR handle. This utility is useful in error handling or user-defined
2981ODR_PRINT stream.
2982
2983Added ODR_PRINT utility odr_set_stream which is is a more generic
2984alternative to odr_setprint. odr_set_stream takes a stream handle, pointer
2985to a write function and pointer to close function. The close function - if
2986non-NULL - will be called during odr_destroy.
2987
2988Fixed bug in CCL parser where truncation char was not removed from
2989right side when truncation=both was in effect.
2990
2991Fixed CQL parser to use unsigned chars for isxxx from ctype.h due
2992to VS.NET.
2993
2994--- 2.0.23 2004/08/11
2995
2996Fix buffer overrun in CQL parser when dealing with proximity (%).
2997
2998Fixes for MARC-8 in yaz_iconv character set utilies. The MARC-8
2999to UTF-8/UCS conversion is now only based on codetables.xml.
3000
3001yaz_marc_decode_buf sets leader pos 9 to "a" for MARCXML output.
3002
3003--- 2.0.22 2004/08/06
3004
3005Add support for more "commit changes" in ZOOM (uses Extended Services).
3006
3007For yaz-client, command set_marcdump <file> / -m <file> dumps SUTRS/XML/..
3008records as well.
3009
3010Yet another small fix for configure of SSL.
3011
3012--- 2.0.21 2004/05/14
3013
3014Fix SSL libs for configure when --with-openssl=DIR is given. 
3015
3016--- 2.0.20 2004/05/10
3017
3018Add autoconf m4 macro YAZ_DOC for YAZ documentation setup (docbook).
3019
3020SSL comstack now uses yaz.pem certificate file on server side
3021by default. Certificate filename can be configured by calling
3022comstack function cs_set_ssl_certificate_file before cs_bind is used.
3023
3024Fix bug regarding multiple calls to ZOOM_connection_connect.
3025
3026Implement cs_set_ssl_ctx which sets SSL_CTX for SSL comstack.
3027
3028Do not create SSL_CTX in cs_create (ssl_type). Create in tcpip_bind,
3029tcpip_rcvconnect instead. This allows user to set custom SSL_CTX.
3030
3031ZOOM now allows inspection of X509 peer certificate for verification.
3032The X509 buffer is retrived by reading ZOOM option "sslPeerCert".
3033
3034Removed libyazssl.la. When SSL is enabled, libyaz.la has SSL support and
3035all programs have too (yaz-ztest, yaz-client, zoom..). May not be
3036as "modular" but it simplifies things.
3037
3038Added cs_get_peer_certificate to that returns peer X509 PEM.
3039
3040Added cs_get_ssl that returns SSL handle (SSL *) for SSL comstack; returns
3041NULL if SSL is unavailable.
3042
3043Documentation about MARC decoding tools.
3044
3045Fix --disable-tcpd to really disable tcpd. Patch by Robin H. Johnson.
3046
3047--- 2.0.19 2004/03/30
3048
3049Rename CHANGELOG to NEWS to follow GNU style packing.
3050
3051Fix bug with missing initialization of member in init_diagnostics.
3052This bug affects threaded version of GFS server.
3053
3054--- 2.0.18 2004/03/20
3055
3056Use wrbuf_xmlputs_n instead of wrbuf_write_cdata to avoid clash with
3057Zebra symbol.
3058
3059Ensure zlib.dll is packed with Windows install.
3060
3061--- 2.0.17 2004/03/17
3062
3063Fix encoding of xsd:string to use text instead of CDATA.
3064
3065Fix endless loop in CQL parser with unbalanced ".
3066
3067Use a more compact way to store MARC-8 conversion tables.
3068
3069--- 2.0.16 2004/03/16 Debian only
3070
3071Oleg Kolobov Fixed a bug in yaz_iconv regarding conversion to
3072UCS4 / UCS4LE.
3073
3074Update CQL parser to use new CQL 1.1 modifiers for booleans and
3075relations.
3076
3077Add CQL test cases.
3078
3079--- 2.0.15 2004/03/01
3080
3081Another fix for decoding of XML packed records.
3082
3083--- 2.0.14 2004/02/25
3084
3085Fixes for Chunked encoding. White space not ignored after length spec.
3086
3087Update NS and use default NS for SRW diagnostic elements.
3088
3089--- 2.0.13 2004/02/23
3090
3091Implement ZOOM_resultset_cache_reset which resets record cache.
3092
3093Implement ZOOM_resultset_sort which sorts a result set.
3094
3095Implement chunked HTTP transfer.
3096
3097For SSL, use -lssl -lcrypto on systems that don't have pkg-config.
3098
3099--- 2.0.12 2004/02/16
3100
3101Added member 'schema' to bend_explain_rr structure so that backend
3102can specify explain record identifier. Defaults to Zeerex 2.0.
3103
3104Fix encoding of OID's of form 1.0.X. Bug introduced in 2.0.11.
3105
3106--- 2.0.11 2004/02/16
3107
3108* SRW/SRU 1.1 updates: updated diagnostic in srw.h to use uri instead
3109of code.
3110
3111Added init command for yaz-client which sends "extra" init request.
3112
3113Fixed two bugs in OID codec - ber_oidc. Throw error when encoding/decoding
3114bad truncated OID. Fix decoding of OID X.Y... when X=2 and Y>39.
3115
3116Fixed a bug in ASN.1 compiler that caused Type-1 Operator codec to fail.
3117
3118Make ZOOM error code for "invalid query".
3119
3120Fixed compilation for SSL which wasn't properly enabled for all platforms.
3121
3122--- 2.0.10 2004/02/05
3123
3124For yaz.m4, allow second argument for YAZ_INIT to hold minimal version of
3125YAZ required.
3126
3127* SRW/SRU 1.1 updates. Diagnostic code now a URI.
3128
3129Added option -p <file> to make Generic Frontend Server to write PID file.
3130
3131Added option -D to put Generic Frontend Server in background on its own.
3132
3133Make ZOOM C recognize option "password". If unset, "pass" is used
3134(for backwards compatibility).
3135
3136Fixed a bug in Generic Frontend Server that could make it crash if a
3137client sets characterSetNegotation bit, but didn't pass negotiation stuff
3138in InitRequest.
3139
3140New YAZ client command, zversion, that sets Z39.50 version (1,2,3..).
3141Must be issued before open, in order to be in effect.
3142
3143--- 2.0.9-6 2004/01/12  Debian/Windows
3144
3145Make the SRU server more picky WRT unknown params, etc.
3146
3147Bug fix: ZOOM scan response didn't return displayTerm - when present.
3148
3149New YAZ client command, options, that sets Z39.50 options.
3150
3151New utility functions yaz_init_opt_{encode,decode} to encode/decode Z39.50
3152options from a string of tokens (one token for each option bit).
3153
3154Update SRW diagnostic code messages.
3155
3156--- 2.0.9-5 2004/01/07  Debian/Windows
3157
3158Handle user defined stylesheet for SRW/SRU.
3159
3160--- 2.0.9-4 2004/01/06  Debian/Windows
3161
3162Fix bug in decoding of Content-Length.
3163
3164--- 2.0.9-3 2004/01/06  Debian/Windows
3165
3166Fix a bug with decoding of XML packed records.
3167
3168--- 2.0.9-2 2004/01/05  Debian only
3169
3170Allow empty ODR (NMEM=0) for odr_oiddup and odr_getoidbystr.
3171
3172Fix bug in SRW/SRU diagnostics decoding.
3173
3174--- 2.0.9 2004/01/05
3175
3176Fixed bug in Generic Frontend Server which could drop records exceeding
3177preferred message size. Reported and fixed by Irina Dijour.
3178
3179Fixed calculation of package size for structured records in Generic
3180Frontend Server. Reported and fixed by Irina Dijour.
3181
3182Fixed namespace for SRW/SRU diagnostics.
3183
3184Fixed SEGV in yaz-client that occured for HTTP connection errors.
3185
3186--- 2.0.8 2003/12/22
3187
3188* SRW/SRU 1.1. Since the Namespace has changed for SRW/SRU, it means that
3189this version is incompatible with version 1.0 and older YAZ SRW/SRU
3190implementations.
3191
3192CQL changes to reflect recent changes to the specification:
3193* Documentation talks about context sets instead of index sets.
3194* Documentation talks about indexes instead of qualifiers.
3195* The CQL-to-PQF transformer's configuration file now uses
3196        "index.set.name = <attributes>" instead of the old form
3197        "qualifier.set.name = <attributes>".  (Both forms are still
3198        understood but the latter is deprecated.)
3199* CQL terms with no explicit index specified are now interpreted as
3200        cql.serverChoice instead of srw.serverChoice (which of course
3201        behaves exactly the same.)
3202
3203--- 2.0.7 2003/12/16
3204
3205MARC conversion can now generate ISO2709 output in another
3206character set. yaz-marcdump uses this facility if you invoke it
3207with option -O.
3208
3209Added missing C decl macros for include/yaz/{soap.h,srw.h,cql.h}, so that
3210functions from there can be used from C++.
3211
3212--- 2.0.6 2003/12/04
3213
3214Frontend server now transfers memory from decoded packages to stream
3215ODR for search.
3216
3217NMEM now clears freed blocks with 'Y' (hex 59) to force bad memory
3218references to show up.
3219
3220ZOOM-C now supports standard ZOOM option names as described in v1.4 of
3221the ZOOM Abstract API.  The older names for the same options are still
3222also supported for the benefit of old applications.
3223
3224ZOOM-C supports "implementationId" and "implementationVersion" options
3225to go along with "implementationName".  These allow the user code to
3226specify identification strings to be sent to servers.
3227Add OID for the new ExtLite attribute set.
3228
3229Add OIDs for NACSIS-CATP, FINMARC2000 and MARC21-fin record-syntaxes,
3230 as requested/supplid by Ere Maijala <ere@atp.fi>
3231
3232For generic frontend server, reverse the order of
3233"toolkit-supplied / application-supplied" strings sent as implementationId,
3234Name and Version.  Also, remove the spaces around the slash.  This brings
3235the GFS in line with the behaviour of ZOOM-C on the client side.
3236
3237Add function ZOOM_scanset_display_term.
3238
3239yaz-client shows scan displayTerm if present.
3240
3241Utility yaz-iconv is now installed by default along with the man page
3242yaz-iconv.1.
3243
3244Extend configure check for OpenSSL to use pkg-config where available (such
3245as RedHat 9).
3246
3247Incorporate patch by Morten Bogeskov which allows a Unix file socket
3248server to specify uid/gid/mask for socket using the format
3249 unix:[user=uid,][group=gid,][umask=mask,]file=path
3250If file= is omitted the existing format is assumed, e.g.
3251 unix:path
3252in which case the mask is 0666 (rw for everybody).
3253
3254Major restructure of YAZ source. All source in libyaz is in src directory.
3255Programs in client (yaz-client), ztest (yaz-ztest), zoom (zoom programs),
3256util (utility programs such as ASN.1 compiler, yaz-marcdump).
3257
3258Added man page for utility yaz-marcdump (used to be called marcdump).
3259yaz-marcdump is installed by 'make install'.
3260
3261Fixed a memory leak in Generic Frontend Server that occurred when decoding
3262of incoming package failed.
3263
3264Fixed a potential DOS attack vulnerability in COMSTACK/ODR.
3265
3266Change prototype of odr_perror: add const to message string.
3267
3268New function yaz_log_reopen which reopens log file (for log rotate, etc.)
3269
3270* Blocking parameter for COMSTACK cs_create is now a bit mask rather
3271than a blocking flag. Bit 0 is set for blocking, reset for non-blocking.
3272Bit 1 is set if cs_addrstr should avoid DNS lookup; reset for full
3273DNS lookup. There should not be any compatibility problems with this
3274assuming that blocking=1 or 0 is used.
3275
3276Fix bad reference in UNIX comstack in function cs_addrstr.
3277
3278Fix for compilation on AIX.
3279
3280The generic front-end server (server/seshigh.c) now supports returning
3281Init diagnostics to the client in User-information-field, in
3282accordance with Z35.90 Implementor Agreement 5 (Returning diagnostics
3283in an InitResponse)
3284
3285--- 2.0.4 2003/09/04
3286
3287Allow any CQL relation (not just all,any,exact,scr).
3288
3289Fixes for OCLC UI ASN.1 to make it work with SilverPlatter targets
3290that features the same UI.
3291
3292Implemented command update0 in YAZ client which is equivalent to
3293update but uses old of Ext Update ASN.1.
3294
3295Use OID 1.2.840.10003.15.1000.81.1 for privately defined charsets
3296in charset negotiation. Added VAL_ID_CHARSET in oid.h.
3297Previously no OID was used for this info.
3298
3299ZOOM uses smallSetUpperBound=1 instead of 0 for piggyback searches.
3300It apparantely upsets EBSCO Publishing IR Z39.50 Server which
3301returns 'malformed search term' otherwise.
3302
3303SortResponse member resultCount now set to NULL in sort handler of
3304frontend server.
3305
3306OPAC support ZOOM. ZOOM_record_get returns OPAC info (as XML) if
3307type is "opac".
3308
3309Add three new utility functions for translating OIDs between various
3310formats -- symbolic name such as "Usmarc", minus-1-terminated int
3311arrays and dotted strings such as "1.2.840.10003.9.5.1":
3312 int *oid_name_to_oid(oid_class oclass, const char *name, int *oid);
3313 char *oid_to_dotstring(const int *oid, char *oidbuf);
3314 char *oid_name_to_dotstring(oid_class oclass, const char *name, char *oidbuf);
3315
3316Reverted modifications for ES Update definition for z_IU0Update
3317(OID 1.2.840.10003.9.5.1 and 1.2.840.10003.9.5). The definition
3318is back to YAZ 2.0.2.
3319
3320String value attributes for CCL parser.
3321
3322Support for OCLC's locally registered "OCLC-UserInformation" PDU,
3323which their FirstSearch server returns in Init responses, sometimes
3324carrying useful diagnostic information when Init fails.  This has the
3325OID 1.2.840.10003.10.1000.17.1 and is defined in the file
3326"z39.50/oclcui.asn", where its definition is somewhat different from
3327what OCLC document on their web-site, as required to interoperate with
3328their servers.
3329
3330Support for anonymous authentication in yaz-client.  Use the command
3331"auth -".
3332
3333* Fix the OID of the Index Data-local "admin" Extended Service from
3334  1.2.840.10003.9.81.1 to 1.2.840.10003.9.1000.81.1.  The omission of
3335  the 1000, which indicates a locally-defined OID, was a mistake.
3336
3337--- 2.0.3 2003/06/20
3338
3339Fix CCL directive @case handling so that it affects string match for
3340both CCL keywords and qualifiers.
3341
3342* ESFormat-Update updates. Packages with OID 1.2.840.10003.9.5.1 and
33431.2.840.10003.9.5 are now handled by the same decoder z_IU0Update .
3344Decoder has been updated with ASN.1 changes as listed in
3345http://lcweb.loc.gov/z3950/agency/defns/updateES.html
3346Note that the "latest" DB Update, OID 1.2.840.10003.9.5.1.1 , handler
3347z_IUUpdate, remains unchanged.
3348
3349ZOOM_record_get may now return a record in a specific character set.
3350For type use "form; charset=from[,to]" where form (render, xml, ..) ,
3351"from" is the character set of record as returned by target. "to" is
3352the character set to be returned. If omitted, "to" is UTF-8.
3353
3354YAZ ASN.1 compiler renamed from yaz-comp to yaz-asncomp
3355
3356New ODR utility, odr_getelement, which returns name of element for
3357which encoding/decoding failed.
3358
3359Fixed ODR so that it returns error code OREQUIRED rather than ONONE
3360in cases where a required element was omitted.
3361
3362Bug fix: some MARC8 sequences were not converted.
3363
3364New ZOOM option "step" which specifies number of records to be
3365retrieved in one chunk. Used in conjunction with "start" and "count".
3366
3367SRW support for yaz-client. Use scheme http: to use it, e.g.
3368 http://host:port/db
3369
3370yaz-client no longer does (un)intelligent character set conversions
3371by default. Can be enabled with charset and marc_charset commands.
3372
3373xmalloc trace fix for 64-bit systems such as DEC alpha.
3374
3375Solaris 2.6 compile fix.
3376
3377New function, cql_strerror() translates SRW error codes, as returned
3378by cql_transform_error(), into human-readable English strings.  Used
3379in yaz-client diagnostics when appropriate.
3380
3381New CQL2RPN query-type for the command-line yaz-client, parses CQL and
3382converts it into a type-1 query which is sent to the server.  This
3383makes CQL available for use with all Z-servers, as opposed to the tiny
3384minority that can handle CQL queries themselves.
3385
3386--- 2.0.2 2003/04/28
3387
3388New Debian package layout similar to the Redhat Package layout.
3389
3390New ZOOM events ZOOM_EVENT_RECV_{RECORD,SEARCH} for receiving a record
3391and search result respectively.
3392
3393--- 2.0.1 2003/04/25
3394
3395Redhat package is now several packages: libyaz (runtime libraries),
3396libyaz-devel (development and documentation, and yaz (utility programs).
3397Package spec file by Morten Bogeskov.
3398
3399New member 'schema' in struct bend_fetch_rr which the name of requested
3400schema (SRW/SRU) for record (or NULL if none was given). The fetch
3401handler MAY set this to reflect the schema of the returned record.
3402
3403New member 'display_term' in struct scan_entry. GFS now sets member entries
3404and allocates scan entries to be filled by user scan handler. In previous
3405version, entries member was allocated by the scan handler. That still works,
3406but the GFS will ignore member display_term - assuming it was NOT set by
3407the handler. The fact that the GFS now allocates the entries both allows
3408for new members and makes a scan handler easier to write.
3409
3410Fix CQL lex buffer overflow.
3411
3412SRW/SRU recordPacking. For SRW default recordPacking is string. For
3413SRU default recordPacking is string.
3414
3415SRU protocol support for frontend server.
3416
3417Fix compile bug for systems that have nl_langinfo but CODESET undefined.
3418
3419Added missing PQF transform rules for <= and >= . Thanks to Peter Popovics.
3420
3421Added scan for the ZOOM shell (zoomsh).
3422
3423--- 2.0 2003/02/23
3424
3425* String Identifers for Schemas (Amendment 5).
3426http://lcweb.loc.gov/z3950/agency/amend/am5.html
3427Old definition for schema
3428  Odr_oid *schema; /* OPT */
3429New:
3430  int which;
3431  union {
3432     Odr_oid *oid;
3433     Z_InternationalString *uri;
3434  #define Z_Schema_oid 1
3435  #define Z_Schema_uri 2
3436  } schema; /* OPT */
3437
3438* resultCount parameter to Sort Response (Amendment 1).
3439http://lcweb.loc.gov/z3950/agency/amend/am1.html
3440
3441Support for SRW 1.0 over HTTP. This is an optional feature and
3442requires libxml2 to operate. Enable SOAP by specifying --with-xml2
3443for configure.
3444
3445Generic frontend server supports HTTP/SOAP/SRW and Z39.50/BER
3446on the same port.  SRW SearchRetrieveRequests are mapped
3447to bend_init,bend_search,bend_fetch,bend_close.
3448
3449Z39.50 Query Type-104 added - to facilitate CQL within Z39.50.
3450
3451CQL support. Source is directory 'cql'. CQL is supported in ZOOM
3452(both SRW and Z39.50) and the YAZ client (Z39.50 only).
3453
3454ZOOM connections are SRW based if schem http is used for hostname
3455in connect, e.g.  z = ZOOM_connection_new("http://myserver");
3456ZOOM_query may be of type CQL, e.g. ZOOM_query_cql(q, "dc.title=x");
3457
3458CCL proximity operators !n, %n converts to PQF @prox 0 n 1 2 k 2
3459and @prox 0 n 0 1 k 2 respectively, meaning: exlusion=false,
3460distance=n, order=true/false, relation=le, prox unit=word. If
3461n is omitted, distance 1 is used.
3462
3463Fixed problem with C compiler include path in wrong order.
3464
3465For TCP/IP COMSTACK, set recv buffer to an appropriate "large" value
3466on Solaris. Patch from Ko van der Sloot.
3467
3468New MARC decode API. All new functions operate on a yaz_marc_t
3469handle. The most important new functions are: yaz_marc_create,
3470yaz_marc_decode_{buf,wrbuf}, yaz_marc_destroy, .. to create handler,
3471decode and destroy respectively. Decoder can produce formats
3472MARC line, simple XML, OAI MARC and MARC XML (LoC). See
3473include/yaz/marcdisp.h.
3474
3475YAZ Iconv utility now supports MARC8 decoding (marc8.c). Converts
3476to UTF-8, UCS-32, wchar_t or Latin-1.
3477
3478* Prototypes for yaz_iconv_-functions moved to separate header
3479include/yaz/yaz-iconv.h.
3480
3481Make a few private functions 'static' in unix.c. This prevents
3482duplicate unix_close in PHP with YAZ and imap. PHP Bug 20977.
3483
3484For ZOOM connection, the options targetImplementation{Id,Name,Version}
3485are set when Init Response is received.
3486
3487New function ZOOM_connection_error_x similar to ZOOM_connection_error
3488but returns diagnostic set as well.
3489
3490New function yaz_strerror which is a portable wrapper for
3491strerror/strerror_r/GetLastMessage.
3492
3493* ZOOM_record_get supports type "xml" in which case MARC XML (from LOC)
3494is returned for MARC. If type is "oai", then OAI MARC is returned.
3495
3496Fix creation of lib/yaz-config so it works if srcdir != objdir. Patch
3497from Kang-Jin Lee.
3498
3499--- 1.9.2 2002/11/26
3500
3501yaz_marc_decode uses OAI MARC as XML format for ISO2709 records.
3502
3503Fix bad race conditions on SIGTERM and terminate gracefully in
3504frontend server.
3505
3506Move retrieval (data1) module to Zebra since nobody seems to be
3507using it.
3508
3509Add GRS-1 render for ZOOM using same format as yaz-client.
3510
3511--- 1.9.1 2002/10/05
3512
3513Added man pages: yaz-client(1), yaz-ztest(8), yaz(7), zoomsh(1).
3514
3515Fix broken ESpec handling in data1 module.
3516
3517SGML reader parses comments and makes them part of the data1 tree.
3518
3519Added several type casts so that YAZ compiles as C++ code.
3520
3521ZOOM didn't handle PDU encoding failures properly.
3522
3523Added more Bib-1 diagnostics (approved extensions).
3524
3525GNU configure: better check for iconv.
3526
3527More portable use of accept, getpeername. Check for socklen_t. Use
3528int/size_t if socklen_t is not defined.
3529
3530--- 1.9 2002/09/06
3531
3532PQF parser rejects bad queries - including those with extra
3533characters in them. PQF parser used to silently ignore that.
3534Cleaner API for PQF added, which allows you to get detailed
3535error information for bad queries (see yaz/pquery.h).
3536
3537Fixed bug in ZOOM_record_get for type "database".
3538
3539Implemented mini iconv library supporting conversions between
3540UTF-8, UCS4, UCS4LE and ISO-8859-1. Implemented in util/siconv.c.
3541
3542* Removed XML reader (d1_expat.c). It's part of Zebra instead.
3543
3544--- 1.8.9 2002/08/20
3545
3546Fixed ZOOM C record cache so that preferredRecordSyntax and
3547elementSetName is used to check for already fetched records.
3548
3549--- 1.8.8 2002/08/02
3550
3551Added three members in bend_initrequest structure to facilitate
3552character set negotiation.
3553
3554Fixed a bug in frontend server that could cause indefinite
3555loops under rare conditions.
3556
3557Revised character set utilities (charneg.h) so that encoding
3558UCS-4, UCSA-4, UTF-16 and UTF-8 are encoded non-privately.
3559
3560For PQF, directive @term <type> sets term type for Scan/Search.
3561Here <type> is general, string, numeric, null. The term type
3562is inherited - just like @attr.
3563
3564New call odr_set_charset that sets character set conversion for
3565international-strings on a ODR stream. Prototype is:
3566 int odr_set_charset(ODR o, const char *to, const char *from);
3567The InternationalString is still represented as C string in YAZ
3568so native strings of type UTF-8, ASCII, etc. will work (UTF-16
3569won't). On the protocol level, you can use any encoding.
3570
3571Support for UNIX sockets in ZOOM.
3572
3573Solaris recv sometimes returns errno == ENOENT. It is treated as
3574EINPROGRESS. COMSTACK patch by Ko van der Sloot.
3575
3576New COMSTACK of type UNIX Socket. Use "unix:/path" as address for
3577both client and server. Code by Morten Bogeskov.
3578
3579--- 1.8.7 2002/05/22
3580
3581On Windows ZOOM functions are of type __stdcall rather than __cdecl, so
3582that they can be used directly from Visual Basic. You must recompile
3583your windows APP if you're using ZOOM.
3584
3585Character Set and Language Negotiation(3) for ZOOM API and YAZ client.
3586Commands "lang" and "charset" sets language and character set respectively.
3587Options "lang" and "charset" is interpreted by the ZOOM API. Note, these
3588are not part of the official ZOOM spec) All is due to Oleg Kolobov.
3589
3590Attributes from multiple CCL fields may be OR'ed rather than merged
3591using directive "@field or". Fields are still merged by default -
3592equivalent to "@field merge".
3593
3594Fixed bug in ZOOM connect that occurred on OpenBSD (maybe others). Patch
3595by Oleg Kolobov.
3596
3597Fixed bug in zget for parameter ExtendedServicesResponse.
3598
3599Fix OID for ILL.
3600
3601--- 1.8.6 2002/03/25
3602
3603Added PQF feature: '@attr type=value' may be written as '@type=value'.
3604
3605Client displays USR.1:SearchResult-1 (hits per term).
3606
3607Additional Search Info for search in Generic Frontend Server.
3608
3609Fixed CCL parsing of "field=s".
3610
3611WIN32 installer - using the excellent NSIS software from nullsoft.
3612
3613Fixed CCL parsing of "field = - <number>".
3614
3615Added function yaz_marc_decode that decodes MARC for line mode
3616display or XML (similar to that used by JZKit).
3617
3618Fixed BER decoding of OPTIONAL CHOICE. The bug didn't affect the
3619Z39.50. But ISO/ILL was, however.
3620
3621Added patch by Rustam T. Usmanov that implements Z39.50 duplicate
3622detection service (Z39.50-1995 Amendment 2) and Language Negotiation (3).
3623See:
3624 http://lcweb.loc.gov/z3950/agency/amend/am2.html
3625 http://lcweb.loc.gov/z3950/agency/defns/charneg-3.html
3626
3627--- 1.8.5 2002/02/03
3628
3629New YAZ client features: Command completion and new commands:
3630push_command, set_apdufile, set_marcdump, set_cclfields, register_oid.
3631Code provided by Jacob Poulsen.
3632
3633New call oid_trav, that visits all registered OIDs via callback.
3634
3635Function ZOOM_record_get now returns const char pointer rather than
3636void pointer. It saves a lot of type casts.
3637
3638For YAZ client, command "auth" now allows you to set authentication
3639in IdPass style. It is enabled when three tokens are given - order
3640is user, group and password.
3641
3642Fix memory leaks in MARC record handling for ZOOM.
3643
3644New option for YAZ client, -k <kilobytes> that sets
3645maximum record size. Similar to -k option for generic frontend
3646server and yaz-ztest.
3647
3648More fixes for scan. Non-zero stepSize handled. OID's fixes.
3649
3650Prefix query parser reports "fail" when bad attribute set is given.
3651
3652Fix in MARC decoder. Proximity logging. Fix for attribute set
3653in scan handler for server. Patches by Shigeru Ishida.
3654
3655SSL/COMSTACK updates. cs_rcvconnect completes SSL handshake. ZOOM
3656works with SSL.
3657
3658Configure option --with-openssl=<dir> now works when a directory is
3659specified. Patch provided by Morten Bogeskov.
3660
3661New option for YAZ client, -u <auth>, that sets authentication.
3662
3663ZOOM fix: error information was sometimes "missing", since error
3664was cleared/reset too when it shouldn't.
3665
3666ZOOM_record_get returns ISO2709 buffer when "raw" is given.
3667
3668--- 1.8.4 2002/01/04
3669
3670Scan for ZOOM API. New object ZOOM_scanset. New functions
3671ZOOM_connection_scan, ZOOM_scanset_size, ZOOM_scanset_term and
3672ZOOM_scanset_destroy.
3673
3674New ZOOM function, ZOOM_connection_last_event, that returns type
3675of last event (such as "receive data", "send data", "apdu received",
3676etc.
3677
3678New ZOOM option, schema, that specifies schema for retrieval.
3679
3680New CCL feature. Qualifiers can be aliases for one or more
3681other qualifiers (if more than one is given, OR is used).
3682
3683ZOOM uses named result sets if target supports it.
3684
3685Two new YAZ client commands: .  (dot, which sources a script of YAZ
3686client commands), and ! (to execute shell command.). Implemented
3687by Jacob Poulsen.
3688
3689Working on Debian packages.
3690
3691--- 1.8.3 2001/11/19
3692
3693YAZ client enables named result sets only if target supports it.
3694
3695*** ZOOM. Prefix for ZOOM definitions changed from Z3950_ to ZOOM_.
3696
3697* ZOOM. Removed Z3950_connection_host. Use Z3950_connection_option_get
3698with key="host" to get same result.
3699
3700* ZOOM. Added Z3950_record_clone and removed Z3950_resultset_get.
3701Function Z3950_resultset_record(s) returns references to records
3702"owned" by resultset. To become owner use Z3950_record_clone.
3703
3704Function z_ext_record handles Extended Services. Thanks to
3705Irina Dijour.
3706
3707--- 1.8.2 2001/11/12
3708
3709CCL Parser fix: ignore token comma when dealing with and-lists.
3710
3711Documentation updates for COMSTACK.
3712
3713* ZOOM changes. Query object renamed from Z3950_search to Z3950_query.
3714Changed prototype Z3950_records. For some functions, int parameters
3715were changed to size_t.
3716
3717TCP/IP COMSTACK no longer uses getprotobyname to avoid memory leak
3718on some Unices.
3719
3720New MARC decode/display function, marc_display_exl, which properly rejects
3721non-ISO2709 records. YAZ client uses it.
3722
3723--- 1.8.1 2001/10/29
3724
3725Fix bug: local attribute set wasn't set correctly in PQF strings.
3726
3727--- 1.8 2001/10/25
3728
3729* Old Z39.50 codecs no longer supported.
3730
3731Added ZOOM C binding. See http://zoom.z3950.org/
3732
3733Renamed states for COMSTACKs to avoid confusion with events.
3734
3735Implemented cs_look and proper cs_rcvconnect.
3736
3737Fixed COMSTACK error that occurred on HPUX. Fix by Giannis Kosmas.
3738
3739Configure detects POSIX threads on OpenBSD.
3740
3741When sort flag 'i' was specified in yaz-client the caseSensitivy flag
3742was set to a wrong value.  Thanks to Robert Sanderson for reporting this.
3743
3744When error is returned from present handler, non-surrogate diagnostic
3745is returned in present response (and fetch handler is no longer called).
3746
3747* Minor adjustments to pquery parser (PQF). Token characters may be
3748escaped by using backslash (C-style).
3749
3750PQF parser allows string attribute values to be specified. For @attr,
3751non-numeric characters after the equal-sign are treated as strings
3752(e.g. @attr 9=title).
3753
3754CCL trunction character may be defined (@truncation in file)
3755
3756* function zget_ExtendedServicesRequest sets waitAction to
3757  waitIfPossible (was wait).
3758
3759Added cs_set_blocking to set change blocking mode of a COMSTACK. Thanks
3760to Matthew Carey.
3761
3762CCL operator names may be set in field definition files (CCL_bibset).
3763See ccl/bib1 for an example.
3764
3765Fixes in ASN.1 compiler for C++ compatibility.
3766
3767* Renamed members "and" and "or" in struct Z_Operator to "op_and"
3768and "op_or" to avoid conflict with C++.
3769
3770Fixed problem with GNU readline detection on Redhat 7.0.
3771
3772Added step-size for Scan backend handler.
3773
3774Fixed bug that made the frontend server crash when no attribute
3775set was specified for scan.
3776
3777Front-end server automatically switches to original working directory
3778when installed as an NT service. Previously -w had to be specified to
3779make it work.
3780
3781Added extended attributes for retrieval module (data1), so that data1
3782records carry d1_readXML/SGML attributes. d1_read also supports
3783null-data rules ( <tag/>)
3784
3785On UNIX when POSIX threads are available, a separate library libyazthread
3786is created. Programmers should link with that library and the yaz library
3787when using threads. The reason for the split was that some applications
3788on Linux, such as Apache, doesn't work well when using shared objects that
3789relies on threads.
3790
3791Added SSL support for the COMSTACK. You start yaz-client and yaz-ztest
3792(or any frontend server) in SSL mode by specifying ssl: followed by
3793address. Only tested on UNIX.
3794
3795Added feature for CCL module. Virtual structure s=al or s=ol generates
3796and-list and or-list respectively instead of phrase search.
3797
3798Added some OID's.
3799
3800* Added prefix "yaz_" for the functions log_init.., log_file..  and
3801log_mask_str. This was done to avoid name conflicts with other libraries
3802(such as other PHP extensions).
3803
3804Added raw OID member for preferred record syntax (request_format_raw)
3805and returned record syntax (output_format_raw) for backend fetch method.
3806
3807Config file yaz-config now accepts options so that it returns specific
3808compile settings, etc. Thanks to Morten Bogeskov <morten@bogeskov.dk>
3809
3810Shared library support for UNIX using GNU libtool.
3811
3812* Modified backend interface. Request/Response struct's replaced by
3813one read/write C struct. For example bend_fetchrequest and
3814bend_fetchresult have been replaced by single bend_fetch_rr struct.
3815Every handler - even search has to be registered in bend_init
3816handler. This means that the YAZ library no longer refers to
3817external functions and it makes it possible to make the whole
3818thing a single DLL/SO.
3819
3820Added Segment handler for backend server.
3821
3822Added Zmbol/Zebra administrative functions to YAZ client.
3823
3824Threaded frontend server on UNIX (when POSIX Threads are available).
3825Starting the server with option -T enables multi-threading.
3826
3827--- 1.6 2000/03/03
3828
3829Added configure option --enable-comp/disable-comp to control use
3830of YAZ ASN.1 compiler. Use --disable-comp to use the old *coders
3831located in sub directory asn.
3832
3833YAZ ASN.1 compiler renamed to yaz-comp in sub directory. It's installed
3834in ${exec_prefix}/bin along with the other programs yaz-client and
3835yaz-ztest.
3836
3837GNU automake used to maintain makefiles.
3838
3839Added several OID's.
3840
3841Changed retrieval module so that we can load records with no abstract
3842syntax defined. Tagpaths in these records are fully composed of string
3843tags.
3844
3845Implemented ISO ILL protocol. Refer to stuff in sub directory ill.
3846
3847--- 1.5 1999/12/10
3848
3849On UNIX, the generated makefile now supports a proper 'make install'.
3850The prefix can be set via GNU configure to set the install location
3851(default is /usr/local).
3852
3853* YAZ programs client and ztest were renamed to yaz-client and
3854yaz-ztest to avoid conflicts when users install YAZ in "standard"
3855locations, such as /usr/bin,/usr/local/bin,etc.
3856
3857* YAZ Header files were moved from include to include/yaz. YAZ Header
3858files are referred to as include <yaz/log.h> rather than <log.h>.
3859The YAZ include path (-I ..) is therefore the same as before. Programmers
3860should update their #include statements or use -Ipath/include/yaz
3861instead. The main motivation for doing this change is that YAZ header files
3862can be installed in "standard" locations /usr/include,/usr/local/include
3863without introducing conflicts, since ALL YAZ header files are stored
3864in subdirectory yaz (under /usr/include for example).
3865
3866Compilation of YAZ for WIN32 is now handled by an nmake-style makefile
3867rather than project/workspace files. We switched because project files
3868are incompatible between Visual C++ 5 and 6. Refer to windows.txt for
3869details.
3870
3871Changed name of logging function, logf, to yaz_log, to prevent name
3872clash with some math-log functions. The YAZ header log.h defines logf
3873to yaz_log (#define) so there should be no incompatibilities by this
3874modification.
3875
3876Added bend_start/bend_stop handlers for server. These handler are
3877called on start/stop of server. For windows they are called whenever
3878a service is started/stopped.
3879
3880* YAZ now auto-generates decoders/encoders for the Z39.50 protocol using
3881a fairly small ASN.1 compiler written in Tcl. The compiler is located
3882in util/yc.tcl. The auto-generated C code structures are, in a few
3883cases, incompatible with the old decoders. There are differences in the
3884following C structures Z_DiagRec, Z_External, Z_SortRequest, Z_SortResponse,
3885Z_AttributesPlusTerm, Z_ProximityOperator, Z_DefaultDiagFormat.
3886The preprocessor variable ASN_COMPILED is defined when the compiled
3887ASN.1 is being used. Encoder/decoder routines as well as the Z39.50
3888protocol ASN.1 is located sub directory <tt>z39.50</tt>. If you
3889wish to use the old encoders/decoders you can specify --disable-yc
3890for configure.
3891
3892Assigned OID for old DB Update (VAL_DBUPDATE0). Updated YAZ compiled
3893version so that it supports both new - and old version of DB Update
3894
3895* Added 'name' parameter to ODR encoder/decoder routines to facilitate
3896pretty ODR print. Updated whole Z39.50 encoder/decoder to reflect the
3897change. The name parameter can be set to 0 in which no name is specified
3898for the construction. The macros odr_implicit and odr_explicit sets name
3899parameter to zero for the construction involved. New macros
3900odr_implicit_tag and odr_explicit_tag are similar to the others,
3901except that a name parameter is added. For programmers' that don't use
3902ODR they probably only need to change the call to z_APDU and z_External.
3903
3904Added access control facility by interfacing the TCP wrapper library.
3905YAZ automatically attempts to find the TCP wrapper Library (-lwrap) and
3906tcpd.h on Unix systems. For the server, option -d<daemon> specifies the
3907name of the daemon and enables the access control as specified in
3908hosts.allow/hosts.deny. Refer to man pages tcpd(8) and hosts_access(5).
3909
3910Fixed memory leak in ccl_find_str and ccl_qual_rm. Thanks to Hans van
3911den Dool <H.M.vdnDool@kub.nl>.
3912
3913Added reference ID parameter to most functions in server API - refer
3914to backend.h. Thanks to Hans van den Dool <H.M.vdnDool@kub.nl>.
3915
3916Changed name of ccl library to libccl.a (was ccl.a).
3917
3918Fixed bug in decoder for Explain (Category TargetInfo).
3919
3920Added support for GNU readline in client. Thanks to Jacob Poulsen
3921<ja7@dbc.dk>. GNU configure attempts to detect if readline is available.
3922
3923* CHANGED DEFINITION OF ES: UPDATE (INCLUDING THE OID) to reflect the
3924new definition from the ZIG. NOTE THIS IF YOU HAVE AN UPDATE
3925IMPLEMENTATION! This change was made to the development version before
3926the ZIG decided to retract the amendment. If any users MUST be
3927compatible with the original Update definition, PLEASE CONTACT US, and
3928we will include a separate definition corresponding to the old Update
3929ES. Note that because of the change to the ASN.1 of the
3930TaskPackageRecordStructure we cannot define a single structure that
3931will support both versions.
3932
3933* Added const modifier to buffer parameter for some ODR/BER encoding
3934routines: ber_dectag, ber_declen, odp_more_chunks, completeBER,
3935completeWAIS, odr_dumpBER.
3936
3937Fixed bug in client.c which caused a crash when a scanResponse didn't
3938contain positionOfTerm.
3939
3940* Fixed inconsistency in the ScanResponse/ListEntries protocol. This
3941* will cause an error in a client if a non-YAZ target sends both a
3942* list of Scan entries and non-surrogate diagnostics.
3943
3944Retrieval module enhancements. Tag sets may be typed in the reference
3945to it. From the .abs-file the "tagset" directive takes a third optional
3946integer type for the tag set referenced. From a .tag-file the "include"
3947directive takes a third optional type as well. The old "type" directive
3948in the tag set itself is still recognized but acts as the default type
3949for the tag set.
3950
3951Backend interface change. Individual Scan terms returned from bend_scan
3952may also be tagged as Surrogate Diagnostics. Refer to struct scan_entry
3953in include/backend.h.
3954
3955Retrieval module enhancements. Multiple tag sets and attribute sets may
3956be specified in abstract syntax specs. Revised the error/warning for
3957logging messages reported by the retrieval module when reading the
3958various spec files.
3959
3960Object Identifier system (oid_..) changed. The API is backwards
3961compatible but the oid-routines now allocates new OID's when needed.
3962Raw OID's may be specified in oid_getvalbyname.
3963
3964YAZ now uses GNU configure to generate Makefile(s).
3965
3966* Minor changes in some of the member names of DeleteResultSetRequest and
3967DeleteResultSetResponse. See include/proto.h.
3968
3969* Changed some C definitions regarding EXPLAIN record syntax (prt-exp.h)
3970and added member 'languages' in TargetInfo (which was missing).
3971
3972Changed the way attribute sets are handled in the retrieval
3973module. These are now cached, just like the abstract syntaxes
3974(schemas).
3975
3976Changed YAZ so that it links with compiled ASN.1.
3977
3978Added Explain-schema definitions and mapping routines. The following
3979Explain categories have been implemented: AttributeDetails,
3980AttributeSetInfo, DatabaseInfo, CategoryList and TargetInfo.
3981
3982Fixed minor bug in Windows version of Server Library.
3983
3984--- 1.4pl2+ 1998/4/17 (Released with Zebra)
3985
3986Added Extended Services to server (backend.h). Thanks to Charles Woodfield.
3987
3988Added EXTERNAL: UNIverse Resource Report (non-standard).
3989
3990Implemened odr_enum and odr_set_of functions to handle ASN.1 types
3991ENUMERATED and SET OF.
3992
3993* Added 'const' to some of the char pointer arguments for the
3994functions, data1_read_node, data1_getelementbytagname,
3995data1_insert_taggeddata, data1_getesetbyname, data1_getelementbyname,
3996data1_get_absyn.
3997
3998Fixed bug in data1_insert_taggeddata - the last_child member of
3999parent wasn't initialised.
4000
4001* Changed data1_read_record and data1_read_node so that the supplied
4002"SGML"-buffer is read-only. In particular the resulting data1 - tree
4003doesn't refer to any parts of the "SGML"-buffer.
4004
4005Fixed bug in server library (Windows version of statserv_remove).
4006
4007* Changed code so that it compiles as C++. The type definition
4008of Odr_fun which is a member of Odr_arm was changed. The result is,
4009that an explicit typecast is needed for the fun pointer when
4010using Odr_arm - as in:
4011    {1, -1, -1, Z_IdAuthentication_idPass, (Odr_fun)z_IdPass},
4012
4013Updated TagSet-G and -M definitions (tagsetm.tag and tagsetg.tag).
4014
4015Implemented the new structured date and time definition as approved
4016by the ZIG. Added schemaId element to the specificTag in Espec-1
4017(also approved at the last ZIG). Thanks to RVDM.
4018
4019Added some Object identifiers (RVDM).
4020
4021Changed the Update Extended Service (RVDM).
4022
4023Added command "refid" to client which specifies referenceId for
4024the following requests.
4025
4026Implemented extended service handling for server. See ztest.c
4027for an example as well as backend.h. New handlers are registerd
4028in the Init handler.
4029
4030* Changed interface for sort in server.
4031
4032Added new members to statserv_options_block. It allows a server
4033to read options from another source than just the command line. Thanks
4034to Charles Woodfield.
4035
4036* Changed definition of Z_Triple in file prt-grs.h - member boolean
4037renamed to zboolean. Some C++ compilers complained about the name.
4038
4039Minor changes to gils.abs. Added index 's' (sort) on title
4040and date/time-last-modified.
4041
4042--- 1.4pl2 1998/1/30
4043
4044Fixed bug in server library regarding inetd mode (-i). This bug
4045was introduced by release 1.4.
4046
4047--- 1.4pl1 1998/1/29
4048
4049Added sort facility in client and backend server interface.
4050
4051Fixed problem with dependencies in Makefile(s).
4052
4053Fixed bugs for encoders/decoders of extended services and
4054SearchInfoReport.
4055
4056Implemented sub-tree feature for schemas. Sub-trees are
4057referenced in *.abs-files. See explain.abs for an example
4058of the use of this feature.
4059
4060Modified bib1.att; local attributes for ANY didn't include
4061ANY itself (only affects use of the retrieval module).
4062
4063Fixed bug in plain SGML reader in function data1_read_node:
4064tags with prefix "var" was incorrectly interpreted as variants.
4065
4066Added feature "sub-schemas" to enable references to - and definitions
4067of - group of elements.
4068
4069* Removed member parent from type data1_element (in data1.h).
4070
4071Implemented function odr_nullval() that returns the value of
4072ODR_NULLVAL.
4073
4074* Removed member num_children from data1_node (in data1.h).
4075
4076Made NT service interface part of the server library. The
4077function statserv_main uses the NT service when required and
4078calls the statserv_start / statserv_close routines.
4079
4080Routine zget_SearchRequest and zget_PresentRequest fills
4081resultSetName/Id member with "default" instead of "Default".
4082
4083Fixed memory leak in server. Request queue member wasn't freed.
4084
4085Fixed nmem_exit so that memory is freed.
4086
4087--- 1.4 1997/10/2
4088
4089Revised the CCL parser utility to be thread safe.
4090
4091Added function, oid_ent_to_oid, to replace the function
4092oid_getoidbyent, which is not thread safe.
4093
4094* Added nmem_init and nmem_exit to initialize and release
4095NMEM resources. Function nmem_init should be called once in the
4096initial thread before NMEM/ODR is used. statserv.c and client.c
4097have been changed accordingly. The change was necessary to make
4098NMEM thread safe. The NMEM memory pool is shared amongst threads
4099in a process. Unix-based applications will still work fine without
4100calling this.
4101
4102Added NT Services interface for the the Z39.50 (statserv) Server.
4103Refer to the ztest.c source on the usage.
4104
4105Windows 95/NT port using MSVC5.0. Project files are included in the
4106distribution.
4107
4108* Defined new 'global' handle for the retrieval (data1) system. The
4109new handled, data1_handle, describes the state of the data1 system.
4110This handle is passed as first argument to virtually all
4111data1 related routines. The functions data1_create and data1_destroy
4112creates and destroys a data1 handle respectively.
4113
4114Added ODR encode stream member to all backend request structures
4115init, search, scan etc. This stream should be used to allocate all
4116memory used for the response when thread safe operation is needed.
4117
4118Changed the comstack utility, cs_addstr, to be thread safe. The
4119returned hostname string returned by the function is now part the
4120COMSTACK instance.
4121
4122Added comstack utility, cs_straddr, which replaces the tcpip_strtoaddr
4123function. The cs_straddr takes a COMSTACK handle as argument, so this
4124function must be used after cs_create and before bind/connect.
4125This function is thread safe.
4126
4127Moved test server to 'ztest' directory - generic server code still
4128in 'server' directory.
4129
4130Made prefix query (pquery.c) utility thread safe.
4131
4132Added new function modifier YAZ_EXPORT to 'export' public DLL
4133functions when using windows (see include/yconfig.h).
4134
4135Added definitions to the OID database (util/oid.c) (RVDM).
4136
4137Added new BIB-1 diagnostic messages to the handler diagbib1_str.
4138
4139Added call to ccl_rpn_delete in client program.
4140
4141Added ODR argument to ccl_rpn_query and ccl_scan_query to provide
4142release of RPN structure.
4143
4144Added support for C++, headers uses extern "C" for public definitions.
4145With input from RVDM.
4146
4147In handling of SEQUENCE OF: Counter set to zero when SEQUENCE OF is absent.
4148Thanks to Ronald van der Meer (RVDM).
4149
4150Added initializers (zget_ routines) for a number of PDUs. Thanks to RVDM.
4151
4152Added support for private extensions to the OID database
4153(oid_setprivateoids()). Thanks to RVDM.
4154   
4155Added optional, physical ANY (key replication)
4156
4157Fixed null-reference problem in GRS-1 output filter.
4158
4159Proximity operator added to Prefix Query Format (PQF).
4160
4161In test client command "base" accepts multiple databases.
4162
4163Fixed bug in cs_close stack that caused trouble with WINSOCK.
4164
4165--- 1.3 1996/10/11
4166
4167Fixed tagging bug in ResourceReportResponse PDU encoder/decode.
4168
4169Smallish bug-fixes in the new encoders/decoders (explain).
4170
4171Bug fixed in DeleteRequest.
4172
4173Fixed tagging bug of type 101 query in SearchRequest-Query PDU encoder/decoder.
4174
4175Fixed tagging bug in ResourceReportResponse PDU encoder/decode.
4176
4177Added SOIF syntax (using private OID for now) to retrieval module and client.
4178
4179Added Update extended service.
4180
4181Added SearchResult-1 additional info structure.
4182
4183Added optional CCL (ISO8777) interpreter as separate module. Available
4184in linemode client.
4185
4186--- 1.2 1996/6/10 (1st anniversary release)
4187
4188Added Summary record syntax. Lightly tested.
4189
4190Added OPAC record syntax. Untested.
4191
4192Added ResourceReport service encoders/decoders. Untested.
4193
4194Fixed bug in z_Unit - wrong tagging on unitSystem.
4195
4196Fixed bug in the DiagRecs decoder.
4197
4198Added options for max PDU size and session timeout to frontend-server.
4199
4200Added documentation of query-language parsers and other supporting utilities.
4201
4202[frontend-server] Added Attribute set to the bend_scanrequest API.
4203
4204[frontend-server] NextResultSetPosition was sometimes set incorrectly when
4205surrogate diagnostics were generated.
4206
4207[retrieval] Allow multiple local values for attribute.
4208
4209[retrieval] Allow multiple attributes per element in .abs files. index type.
4210
4211[retrieval] Added Summary tagset, abstract syntax, and d1-node/ASN filter.
4212
4213--- 1.1pl2  1996/4/10
4214
4215Minor changes, mostly specific to Zebra's requirements (retrieval)
4216
4217--- 1.1  1996/2/20
4218
4219Repaired bug in frontend server when running multiple listening
4220endpoints in dynamic mode.
4221
4222z_External() now won't break if a known, ASN.1 value comes encapsulated
4223in an octet-string. The value will pass through unmodified in an Odr_oct.
4224
4225Added a bit of code to the demo client to decode & display
4226ASN.1-structured records represented in the octet-aligned branch of
4227the EXTERNAL CHOICE. Thanks to CAS for prodding us to finally do this.
4228
4229Added z_ext_getentbyref() to the ASN module. Doc updated.
4230
4231* Completed the SCAN definition in the ASN module. This may break SCAN
4232code based on older YAZ-versions at compile-time. The fix is easy -
4233look in proto.h.
4234
4235* Added 'displayTerm' and OtherInformation to the TermInfo structure
4236under the SCAN definition. Remember to initialize this, server-people.
4237
4238Comstack should now support the WAIS protocol in TCP/IP mode. Note
4239that this does not extend to ODR and ASN.
4240
4241Comstack allows insertion of established socket (primarily for
4242inetd-operation of servers). Doc updated.
4243
4244Front-end server can now start from the inetd in TCP mode. Doc
4245updated.
4246
4247--- 1.0pl4 1996/1/24
4248
4249Added Sort PDU.
4250
4251Fixed small problem in SUTRS-filter. A newline was sometimes inserted before
4252the rank and record number.
4253
4254Adjustments to the frontend server.
4255
4256Fixed diagnostic BER dumper. It ignored the file argument.
4257
4258--- 1.0pl3 1996/1/2
4259
4260Various changes to retrieval module.
4261
4262Changed the union discriminators of the protocol files from enums to
4263ints paired with #defines.
4264
4265*Changed oident.class to oident.oclass to avoid a reserved word in C++
4266 compilers.
4267
4268*Changed operator in the RPN structure to 'roperator', again to avoid a
4269 conflict with C++.
4270
4271Fixed problems in Explain decoders/encoders.
4272
4273--- 1.0pl2 1995/12/6
4274
4275Memory bug in log module fixed.
4276
4277--- 1.0pl1 1995/12/5
4278
4279Occasional malloc() of 0 bytes fixed in d1_espec.c.
4280
4281Bug in Explain DatabaseInfo module fixed.
4282
4283Some '\r' snuck into one or two of the ret'l config tables. A curse on Windows.
4284
4285--- 1.0 1995/11/28
4286
4287The shift to v1.0 signals that we now consider the *core* functionality
4288of YAZ reasonably stable (the core being more or less equivalent to
4289Z39.50-1992). Some of the really nifty v3 stuff is still not heavily
4290tested (Explain not at all - though that will happen soonish).
4291
4292Minor changes to code to support Windows port.
4293
4294Various minor changes after we're getting to use GRS-1 & co. more.
4295
4296Added Espec-1 format.
4297
4298Added VisibleString field body type to GRS-1. It is illegal acc. to my copy
4299of the protocol and it cannot be selected when encoding (maps into 'string'
4300when decoding). Needed to talk to some servers.
4301
4302Demo client can request simple element set names.
4303
4304Added Diagnostic Format encoders/decoders.
4305
4306Added simple Close handling to frontend server (no hooks for resource
4307reporting yet), and demonstration client.
4308
4309Added cs_addrstr() command to COMSTACK to retrieve peer hostname/address.
4310
4311--- 1.0b3 1995/08/24
4312
4313Fixed bug in the frontend-server. The numberOfRecordsReturned field was
4314handled incorrectly when records were requested in the searchResponse. This
4315will only affect you if you use the frontend-server.
4316
4317Added GRS-1 encoders/decoders to the service-level API. Lightly tested.
4318Test-client will ask for and print GRS1. Ztest will return dummy records
4319on request.
4320
4321Added Explain encoders/decoders to the service-level API. Untested.
4322
4323Added Extended Services: Item Order encoders and decoders to the Service-
4324level API. Untested. We could use a recent copy of the pertinent bits
4325of the ILL protocol to add those bits.
4326
4327Added diagnostic format 1 encoders/decoders to the service-level API.
4328Untested.
4329
4330Moved pretty-printing of structure-wrappers ({..}) from odr_seq.c to
4331odr_cons.c, which causes a more correct output.
4332
4333Fixed handling of searchRequest in frontend server. NextResultSetPosition
4334was always set to 0 when no records were requested in the searchRequest.
4335
4336* Added better external-handling. This shouldn't harm old code that
4337*encodes* externals. It can break code that looks for a
4338'single-ASN1-type' representation, since those types that are known
4339are now decoded immediately. Look at the SUTRS sample code in
4340seshigh.c and client.c. Documentation updated.
4341
4342Handling of structured records in bend_fetchresponse. Length -1 marks
4343structured record, type is deduced from format field.
4344
4345--- 1.0b2 1995/06/27
4346Fairly quick maintenance release to add SUTRS support.
4347
4348Fixed handling of SUTRS records in the demonstration client.
4349
4350* Added format field to the bend_fetchrequest and bend_fetchresponce
4351structures of the backend API (frontend server). When the record is
4352returned, the value of the format field is mapped to an OID. The
4353value VAL_SUTRS will also cause a slightly different ASN.1 packaging
4354of the record. The special value VAL_NONE in the bend_request means
4355that no specific format was requested by the client. Documentation
4356updated accordingly. Test server (ztest) will return a fixed dummy
4357SUTRS record if your client requests SUTRS.
4358
4359Documentation updated accordingly.
4360
4361You can now set external libraries and RANLIB support in the top-level
4362Makefile.
4363
4364--- 1.0b 1995/06/19
4365First public release.
Note: See TracBrowser for help on using the repository browser.