1 Possible compatibility problems with earlier versions marked with '*'.
5 * SRW/SRU 1.1 updates: updated diagnostic in srw.h to use uri instead
8 Added init command for yaz-client which sends "extra" init request.
10 Fixed two bugs in OID codec - ber_oidc. Throw error when encoding/decoding
11 bad truncated OID. Fix decoding of OID X.Y... when X=2 and Y>39.
13 Fixed a bug in ASN.1 compiler that caused Type-1 Operator codec to fail.
15 Make ZOOM error code for "invalid query".
17 Fixed compilation for SSL which wasn't properly enabled for all platforms.
21 For yaz.m4, allow second argument for YAZ_INIT to hold minimal version of
24 * SRW/SRU 1.1 updates. Diagnostic code now a URI.
26 Added option -p <file> to make Generic Frontend Server to write PID file.
28 Added option -D to put Generic Frontend Server in background on its own.
30 Make ZOOM C recognize option "password". If unset, "pass" is used
31 (for backwards compatibility).
33 Fixed a bug in Generic Frontend Server that could make it crash if a
34 client sets characterSetNegotation bit, but didn't pass negotiation stuff
37 New YAZ client command, zversion, that sets Z39.50 version (1,2,3..).
38 Must be issued before open, in order to be in effect.
40 --- 2.0.9-6 2004/01/12 Debian/Windows
42 Make the SRU server more picky WRT unknown params, etc.
44 Bug fix: ZOOM scan response didn't return displayTerm - when present.
46 New YAZ client command, options, that sets Z39.50 options.
48 New utility functions yaz_init_opt_{encode,decode} to encode/decode Z39.50
49 options from a string of tokens (one token for each option bit).
51 Update SRW diagnostic code messages.
53 --- 2.0.9-5 2004/01/07 Debian/Windows
55 Handle user defined stylesheet for SRW/SRU.
57 --- 2.0.9-4 2004/01/06 Debian/Windows
59 Fix bug in decoding of Content-Length.
61 --- 2.0.9-3 2004/01/06 Debian/Windows
63 Fix a bug with decoding of XML packed records.
65 --- 2.0.9-2 2004/01/05 Debian only
67 Allow empty ODR (NMEM=0) for odr_oiddup and odr_getoidbystr.
69 Fix bug in SRW/SRU diagnostics decoding.
73 Fixed bug in Generic Frontend Server which could drop records exceeding
74 preferred message size. Reported and fixed by Irina Dijour.
76 Fixed calculation of package size for structured records in Generic
77 Frontend Server. Reported and fixed by Irina Dijour.
79 Fixed namespace for SRW/SRU diagnostics.
81 Fixed SEGV in yaz-client that occured for HTTP connection errors.
85 * SRW/SRU 1.1. Since the Namespace has changed for SRW/SRU, it means that
86 this version is incompatible with version 1.0 and older YAZ SRW/SRU
89 CQL changes to reflect recent changes to the specification:
90 * Documentation talks about context sets instead of index sets.
91 * Documentation talks about indexes instead of qualifiers.
92 * The CQL-to-PQF transformer's configuration file now uses
93 "index.set.name = <attributes>" instead of the old form
94 "qualifier.set.name = <attributes>". (Both forms are still
95 understood but the latter is deprecated.)
96 * CQL terms with no explicit index specified are now interpreted as
97 cql.serverChoice instead of srw.serverChoice (which of course
98 behaves exactly the same.)
102 MARC conversion can now generate ISO2709 output in another
103 character set. yaz-marcdump uses this facility if you invoke it
106 Added missing C decl macros for include/yaz/{soap.h,srw.h,cql.h}, so that
107 functions from there can be used from C++.
111 Frontend server now transfers memory from decoded packages to stream
114 NMEM now clears freed blocks with 'Y' (hex 59) to force bad memory
115 references to show up.
117 ZOOM-C now supports standard ZOOM option names as described in v1.4 of
118 the ZOOM Abstract API. The older names for the same options are still
119 also supported for the benefit of old applications.
121 ZOOM-C supports "implementationId" and "implementationVersion" options
122 to go along with "implementationName". These allow the user code to
123 specify identification strings to be sent to servers.
124 Add OID for the new ExtLite attribute set.
126 Add OIDs for NACSIS-CATP, FINMARC2000 and MARC21-fin record-syntaxes,
127 as requested/supplid by Ere Maijala <ere@atp.fi>
129 For generic frontend server, reverse the order of
130 "toolkit-supplied / application-supplied" strings sent as implementationId,
131 Name and Version. Also, remove the spaces around the slash. This brings
132 the GFS in line with the behaviour of ZOOM-C on the client side.
134 Add function ZOOM_scanset_display_term.
136 yaz-client shows scan displayTerm if present.
138 Utility yaz-iconv is now installed by default along with the man page
141 Extend configure check for OpenSSL to use pkg-config where available (such
144 Incorporate patch by Morten Bogeskov which allows a Unix file socket
145 server to specify uid/gid/mask for socket using the format
146 unix:[user=uid,][group=gid,][umask=mask,]file=path
147 If file= is omitted the existing format is assumed, e.g.
149 in which case the mask is 0666 (rw for everybody).
151 Major restructure of YAZ source. All source in libyaz is in src directory.
152 Programs in client (yaz-client), ztest (yaz-ztest), zoom (zoom programs),
153 util (utility programs such as ASN.1 compiler, yaz-marcdump).
155 Added man page for utility yaz-marcdump (used to be called marcdump).
156 yaz-marcdump is installed by 'make install'.
158 Fixed a memory leak in Generic Frontend Server that occurred when decoding
159 of incoming package failed.
161 Fixed a potential DOS attack vulnerability in COMSTACK/ODR.
163 Change prototype of odr_perror: add const to message string.
165 New function yaz_log_reopen which reopens log file (for log rotate, etc.)
167 * Blocking parameter for COMSTACK cs_create is now a bit mask rather
168 than a blocking flag. Bit 0 is set for blocking, reset for non-blocking.
169 Bit 1 is set if cs_addrstr should avoid DNS lookup; reset for full
170 DNS lookup. There should not be any compatibility problems with this
171 assuming that blocking=1 or 0 is used.
173 Fix bad reference in UNIX comstack in function cs_addrstr.
175 Fix for compilation on AIX.
177 The generic front-end server (server/seshigh.c) now supports returning
178 Init diagnostics to the client in User-information-field, in
179 accordance with Z35.90 Implementor Agreement 5 (Returning diagnostics
184 Allow any CQL relation (not just all,any,exact,scr).
186 Fixes for OCLC UI ASN.1 to make it work with SilverPlatter targets
187 that features the same UI.
189 Implemented command update0 in YAZ client which is equivalent to
190 update but uses old of Ext Update ASN.1.
192 Use OID 1.2.840.10003.15.1000.81.1 for privately defined charsets
193 in charset negotiation. Added VAL_ID_CHARSET in oid.h.
194 Previously no OID was used for this info.
196 ZOOM uses smallSetUpperBound=1 instead of 0 for piggyback searches.
197 It apparantely upsets EBSCO Publishing IR Z39.50 Server which
198 returns 'malformed search term' otherwise.
200 SortResponse member resultCount now set to NULL in sort handler of
203 OPAC support ZOOM. ZOOM_record_get returns OPAC info (as XML) if
206 Add three new utility functions for translating OIDs between various
207 formats -- symbolic name such as "Usmarc", minus-1-terminated int
208 arrays and dotted strings such as "1.2.840.10003.9.5.1":
209 int *oid_name_to_oid(oid_class oclass, const char *name, int *oid);
210 char *oid_to_dotstring(const int *oid, char *oidbuf);
211 char *oid_name_to_dotstring(oid_class oclass, const char *name, char *oidbuf);
213 Reverted modifications for ES Update definition for z_IU0Update
214 (OID 1.2.840.10003.9.5.1 and 1.2.840.10003.9.5). The definition
215 is back to YAZ 2.0.2.
217 String value attributes for CCL parser.
219 Support for OCLC's locally registered "OCLC-UserInformation" PDU,
220 which their FirstSearch server returns in Init responses, sometimes
221 carrying useful diagnostic information when Init fails. This has the
222 OID 1.2.840.10003.10.1000.17.1 and is defined in the file
223 "z39.50/oclcui.asn", where its definition is somewhat different from
224 what OCLC document on their web-site, as required to interoperate with
227 Support for anonymous authentication in yaz-client. Use the command
230 * Fix the OID of the Index Data-local "admin" Extended Service from
231 1.2.840.10003.9.81.1 to 1.2.840.10003.9.1000.81.1. The omission of
232 the 1000, which indicates a locally-defined OID, was a mistake.
236 Fix CCL directive @case handling so that it affects string match for
237 both CCL keywords and qualifiers.
239 * ESFormat-Update updates. Packages with OID 1.2.840.10003.9.5.1 and
240 1.2.840.10003.9.5 are now handled by the same decoder z_IU0Update .
241 Decoder has been updated with ASN.1 changes as listed in
242 http://lcweb.loc.gov/z3950/agency/defns/updateES.html
243 Note that the "latest" DB Update, OID 1.2.840.10003.9.5.1.1 , handler
244 z_IUUpdate, remains unchanged.
246 ZOOM_record_get may now return a record in a specific character set.
247 For type use "form; charset=from[,to]" where form (render, xml, ..) ,
248 "from" is the character set of record as returned by target. "to" is
249 the character set to be returned. If omitted, "to" is UTF-8.
251 YAZ ASN.1 compiler renamed from yaz-comp to yaz-asncomp
253 New ODR utility, odr_getelement, which returns name of element for
254 which encoding/decoding failed.
256 Fixed ODR so that it returns error code OREQUIRED rather than ONONE
257 in cases where a required element was omitted.
259 Bug fix: some MARC8 sequences were not converted.
261 New ZOOM option "step" which specifies number of records to be
262 retrieved in one chunk. Used in conjunction with "start" and "count".
264 SRW support for yaz-client. Use scheme http: to use it, e.g.
267 yaz-client no longer does (un)intelligent character set conversions
268 by default. Can be enabled with charset and marc_charset commands.
270 xmalloc trace fix for 64-bit systems such as DEC alpha.
272 Solaris 2.6 compile fix.
274 New function, cql_strerror() translates SRW error codes, as returned
275 by cql_transform_error(), into human-readable English strings. Used
276 in yaz-client diagnostics when appropriate.
278 New CQL2RPN query-type for the command-line yaz-client, parses CQL and
279 converts it into a type-1 query which is sent to the server. This
280 makes CQL available for use with all Z-servers, as opposed to the tiny
281 minority that can handle CQL queries themselves.
285 New Debian package layout similar to the Redhat Package layout.
287 New ZOOM events ZOOM_EVENT_RECV_{RECORD,SEARCH} for receiving a record
288 and search result respectively.
292 Redhat package is now several packages: libyaz (runtime libraries),
293 libyaz-devel (development and documentation, and yaz (utility programs).
294 Package spec file by Morten Bøgeskov.
296 New member 'schema' in struct bend_fetch_rr which the name of requested
297 schema (SRW/SRU) for record (or NULL if none was given). The fetch
298 handler MAY set this to reflect the schema of the returned record.
300 New member 'display_term' in struct scan_entry. GFS now sets member entries
301 and allocates scan entries to be filled by user scan handler. In previous
302 version, entries member was allocated by the scan handler. That still works,
303 but the GFS will ignore member display_term - assuming it was NOT set by
304 the handler. The fact that the GFS now allocates the entries both allows
305 for new members and makes a scan handler easier to write.
307 Fix CQL lex buffer overflow.
309 SRW/SRU recordPacking. For SRW default recordPacking is string. For
310 SRU default recordPacking is string.
312 SRU protocol support for frontend server.
314 Fix compile bug for systems that have nl_langinfo but CODESET undefined.
316 Added missing PQF transform rules for <= and >= . Thanks to Peter Popovics.
318 Added scan for the ZOOM shell (zoomsh).
322 * String Identifers for Schemas (Amendment 5).
323 http://lcweb.loc.gov/z3950/agency/amend/am5.html
324 Old definition for schema
325 Odr_oid *schema; /* OPT */
330 Z_InternationalString *uri;
331 #define Z_Schema_oid 1
332 #define Z_Schema_uri 2
335 * resultCount parameter to Sort Response (Amendment 1).
336 http://lcweb.loc.gov/z3950/agency/amend/am1.html
338 Support for SRW 1.0 over HTTP. This is an optional feature and
339 requires libxml2 to operate. Enable SOAP by specifying --with-xml2
342 Generic frontend server supports HTTP/SOAP/SRW and Z39.50/BER
343 on the same port. SRW SearchRetrieveRequests are mapped
344 to bend_init,bend_search,bend_fetch,bend_close.
346 Z39.50 Query Type-104 added - to facilitate CQL within Z39.50.
348 CQL support. Source is directory 'cql'. CQL is supported in ZOOM
349 (both SRW and Z39.50) and the YAZ client (Z39.50 only).
351 ZOOM connections are SRW based if schem http is used for hostname
352 in connect, e.g. z = ZOOM_connection_new("http://myserver");
353 ZOOM_query may be of type CQL, e.g. ZOOM_query_cql(q, "dc.title=x");
355 CCL proximity operators !n, %n converts to PQF @prox 0 n 1 2 k 2
356 and @prox 0 n 0 1 k 2 respectively, meaning: exlusion=false,
357 distance=n, order=true/false, relation=le, prox unit=word. If
358 n is omitted, distance 1 is used.
360 Fixed problem with C compiler include path in wrong order.
362 For TCP/IP COMSTACK, set recv buffer to an appropriate "large" value
363 on Solaris. Patch from Ko van der Sloot.
365 New MARC decode API. All new functions operate on a yaz_marc_t
366 handle. The most important new functions are: yaz_marc_create,
367 yaz_marc_decode_{buf,wrbuf}, yaz_marc_destroy, .. to create handler,
368 decode and destroy respectively. Decoder can produce formats
369 MARC line, simple XML, OAI MARC and MARC XML (LoC). See
370 include/yaz/marcdisp.h.
372 YAZ Iconv utility now supports MARC8 decoding (marc8.c). Converts
373 to UTF-8, UCS-32, wchar_t or Latin-1.
375 * Prototypes for yaz_iconv_-functions moved to separate header
376 include/yaz/yaz-iconv.h.
378 Make a few private functions 'static' in unix.c. This prevents
379 duplicate unix_close in PHP with YAZ and imap. PHP Bug 20977.
381 For ZOOM connection, the options targetImplementation{Id,Name,Version}
382 are set when Init Response is received.
384 New function ZOOM_connection_error_x similar to ZOOM_connection_error
385 but returns diagnostic set as well.
387 New function yaz_strerror which is a portable wrapper for
388 strerror/strerror_r/GetLastMessage.
390 * ZOOM_record_get supports type "xml" in which case MARC XML (from LOC)
391 is returned for MARC. If type is "oai", then OAI MARC is returned.
393 Fix creation of lib/yaz-config so it works if srcdir != objdir. Patch
398 yaz_marc_decode uses OAI MARC as XML format for ISO2709 records.
400 Fix bad race conditions on SIGTERM and terminate gracefully in
403 Move retrieval (data1) module to Zebra since nobody seems to be
406 Add GRS-1 render for ZOOM using same format as yaz-client.
410 Added man pages: yaz-client(1), yaz-ztest(8), yaz(7), zoomsh(1).
412 Fix broken ESpec handling in data1 module.
414 SGML reader parses comments and makes them part of the data1 tree.
416 Added several type casts so that YAZ compiles as C++ code.
418 ZOOM didn't handle PDU encoding failures properly.
420 Added more Bib-1 diagnostics (approved extensions).
422 GNU configure: better check for iconv.
424 More portable use of accept, getpeername. Check for socklen_t. Use
425 int/size_t if socklen_t is not defined.
429 PQF parser rejects bad queries - including those with extra
430 characters in them. PQF parser used to silently ignore that.
431 Cleaner API for PQF added, which allows you to get detailed
432 error information for bad queries (see yaz/pquery.h).
434 Fixed bug in ZOOM_record_get for type "database".
436 Implemented mini iconv library supporting conversions between
437 UTF-8, UCS4, UCS4LE and ISO-8859-1. Implemented in util/siconv.c.
439 * Removed XML reader (d1_expat.c). It's part of Zebra instead.
443 Fixed ZOOM C record cache so that preferredRecordSyntax and
444 elementSetName is used to check for already fetched records.
448 Added three members in bend_initrequest structure to facilitate
449 character set negotiation.
451 Fixed a bug in frontend server that could cause indefinite
452 loops under rare conditions.
454 Revised character set utilities (charneg.h) so that encoding
455 UCS-4, UCSA-4, UTF-16 and UTF-8 are encoded non-privately.
457 For PQF, directive @term <type> sets term type for Scan/Search.
458 Here <type> is general, string, numeric, null. The term type
459 is inherited - just like @attr.
461 New call odr_set_charset that sets character set conversion for
462 international-strings on a ODR stream. Prototype is:
463 int odr_set_charset(ODR o, const char *to, const char *from);
464 The InternationalString is still represented as C string in YAZ
465 so native strings of type UTF-8, ASCII, etc. will work (UTF-16
466 won't). On the protocol level, you can use any encoding.
468 Support for UNIX sockets in ZOOM.
470 Solaris recv sometimes returns errno == ENOENT. It is treated as
471 EINPROGRESS. COMSTACK patch by Ko van der Sloot.
473 New COMSTACK of type UNIX Socket. Use "unix:/path" as address for
474 both client and server. Code by Morten Bøgeskov.
478 On Windows ZOOM functions are of type __stdcall rather than __cdecl, so
479 that they can be used directly from Visual Basic. You must recompile
480 your windows APP if you're using ZOOM.
482 Character Set and Language Negotiation(3) for ZOOM API and YAZ client.
483 Commands "lang" and "charset" sets language and character set respectively.
484 Options "lang" and "charset" is interpreted by the ZOOM API. Note, these
485 are not part of the official ZOOM spec) All is due to Oleg Kolobov.
487 Attributes from multiple CCL fields may be OR'ed rather than merged
488 using directive "@field or". Fields are still merged by default -
489 equivalent to "@field merge".
491 Fixed bug in ZOOM connect that occurred on OpenBSD (maybe others). Patch
494 Fixed bug in zget for parameter ExtendedServicesResponse.
500 Added PQF feature: '@attr type=value' may be written as '@type=value'.
502 Client displays USR.1:SearchResult-1 (hits per term).
504 Additional Search Info for search in Generic Frontend Server.
506 Fixed CCL parsing of "field=s".
508 WIN32 installer - using the excellent NSIS software from nullsoft.
510 Fixed CCL parsing of "field = - <number>".
512 Added function yaz_marc_decode that decodes MARC for line mode
513 display or XML (similar to that used by JZKit).
515 Fixed BER decoding of OPTIONAL CHOICE. The bug didn't affect the
516 Z39.50. But ISO/ILL was, however.
518 Added patch by Rustam T. Usmanov that implements Z39.50 duplicate
519 detection service (Z39.50-1995 Amendment 2) and Language Negotiation (3).
521 http://lcweb.loc.gov/z3950/agency/amend/am2.html
522 http://lcweb.loc.gov/z3950/agency/defns/charneg-3.html
526 New YAZ client features: Command completion and new commands:
527 push_command, set_apdufile, set_marcdump, set_cclfields, register_oid.
528 Code provided by Jacob Poulsen.
530 New call oid_trav, that visits all registered OIDs via callback.
532 Function ZOOM_record_get now returns const char pointer rather than
533 void pointer. It saves a lot of type casts.
535 For YAZ client, command "auth" now allows you to set authentication
536 in IdPass style. It is enabled when three tokens are given - order
537 is user, group and password.
539 Fix memory leaks in MARC record handling for ZOOM.
541 New option for YAZ client, -k <kilobytes> that sets
542 maximum record size. Similar to -k option for generic frontend
543 server and yaz-ztest.
545 More fixes for scan. Non-zero stepSize handled. OID's fixes.
547 Prefix query parser reports "fail" when bad attribute set is given.
549 Fix in MARC decoder. Proximity logging. Fix for attribute set
550 in scan handler for server. Patches by Shigeru Ishida.
552 SSL/COMSTACK updates. cs_rcvconnect completes SSL handshake. ZOOM
555 Configure option --with-openssl=<dir> now works when a directory is
556 specified. Patch provided by Morten Bøgeskov.
558 New option for YAZ client, -u <auth>, that sets authentication.
560 ZOOM fix: error information was sometimes "missing", since error
561 was cleared/reset too when it shouldn't.
563 ZOOM_record_get returns ISO2709 buffer when "raw" is given.
567 Scan for ZOOM API. New object ZOOM_scanset. New functions
568 ZOOM_connection_scan, ZOOM_scanset_size, ZOOM_scanset_term and
569 ZOOM_scanset_destroy.
571 New ZOOM function, ZOOM_connection_last_event, that returns type
572 of last event (such as "receive data", "send data", "apdu received",
575 New ZOOM option, schema, that specifies schema for retrieval.
577 New CCL feature. Qualifiers can be aliases for one or more
578 other qualifiers (if more than one is given, OR is used).
580 ZOOM uses named result sets if target supports it.
582 Two new YAZ client commands: . (dot, which sources a script of YAZ
583 client commands), and ! (to execute shell command.). Implemented
586 Working on Debian packages.
590 YAZ client enables named result sets only if target supports it.
592 *** ZOOM. Prefix for ZOOM definitions changed from Z3950_ to ZOOM_.
594 * ZOOM. Removed Z3950_connection_host. Use Z3950_connection_option_get
595 with key="host" to get same result.
597 * ZOOM. Added Z3950_record_clone and removed Z3950_resultset_get.
598 Function Z3950_resultset_record(s) returns references to records
599 "owned" by resultset. To become owner use Z3950_record_clone.
601 Function z_ext_record handles Extended Services. Thanks to
606 CCL Parser fix: ignore token comma when dealing with and-lists.
608 Documentation updates for COMSTACK.
610 * ZOOM changes. Query object renamed from Z3950_search to Z3950_query.
611 Changed prototype Z3950_records. For some functions, int parameters
612 were changed to size_t.
614 TCP/IP COMSTACK no longer uses getprotobyname to avoid memory leak
617 New MARC decode/display function, marc_display_exl, which properly rejects
618 non-ISO2709 records. YAZ client uses it.
622 Fix bug: local attribute set wasn't set correctly in PQF strings.
626 * Old Z39.50 codecs no longer supported.
628 Added ZOOM C binding. See http://zoom.z3950.org/
630 Renamed states for COMSTACKs to avoid confusion with events.
632 Implemented cs_look and proper cs_rcvconnect.
634 Fixed COMSTACK error that occurred on HPUX. Fix by Giannis Kosmas.
636 Configure detects POSIX threads on OpenBSD.
638 When sort flag 'i' was specified in yaz-client the caseSensitivy flag
639 was set to a wrong value. Thanks to Robert Sanderson for reporting this.
641 When error is returned from present handler, non-surrogate diagnostic
642 is returned in present response (and fetch handler is no longer called).
644 * Minor adjustments to pquery parser (PQF). Token characters may be
645 escaped by using backslash (C-style).
647 PQF parser allows string attribute values to be specified. For @attr,
648 non-numeric characters after the equal-sign are treated as strings
649 (e.g. @attr 9=title).
651 CCL trunction character may be defined (@truncation in file)
653 * function zget_ExtendedServicesRequest sets waitAction to
654 waitIfPossible (was wait).
656 Added cs_set_blocking to set change blocking mode of a COMSTACK. Thanks
659 CCL operator names may be set in field definition files (CCL_bibset).
660 See ccl/bib1 for an example.
662 Fixes in ASN.1 compiler for C++ compatibility.
664 * Renamed members "and" and "or" in struct Z_Operator to "op_and"
665 and "op_or" to avoid conflict with C++.
667 Fixed problem with GNU readline detection on Redhat 7.0.
669 Added step-size for Scan backend handler.
671 Fixed bug that made the frontend server crash when no attribute
672 set was specified for scan.
674 Front-end server automatically switches to original working directory
675 when installed as an NT service. Previously -w had to be specified to
678 Added extended attributes for retrieval module (data1), so that data1
679 records carry d1_readXML/SGML attributes. d1_read also supports
680 null-data rules ( <tag/>)
682 On UNIX when POSIX threads are available, a separate library libyazthread
683 is created. Programmers should link with that library and the yaz library
684 when using threads. The reason for the split was that some applications
685 on Linux, such as Apache, doesn't work well when using shared objects that
688 Added SSL support for the COMSTACK. You start yaz-client and yaz-ztest
689 (or any frontend server) in SSL mode by specifying ssl: followed by
690 address. Only tested on UNIX.
692 Added feature for CCL module. Virtual structure s=al or s=ol generates
693 and-list and or-list respectively instead of phrase search.
697 * Added prefix "yaz_" for the functions log_init.., log_file.. and
698 log_mask_str. This was done to avoid name conflicts with other libraries
699 (such as other PHP extensions).
701 Added raw OID member for preferred record syntax (request_format_raw)
702 and returned record syntax (output_format_raw) for backend fetch method.
704 Config file yaz-config now accepts options so that it returns specific
705 compile settings, etc. Thanks to Morten Bøgeskov <morten@bogeskov.dk>
707 Shared library support for UNIX using GNU libtool.
709 * Modified backend interface. Request/Response struct's replaced by
710 one read/write C struct. For example bend_fetchrequest and
711 bend_fetchresult have been replaced by single bend_fetch_rr struct.
712 Every handler - even search has to be registered in bend_init
713 handler. This means that the YAZ library no longer refers to
714 external functions and it makes it possible to make the whole
715 thing a single DLL/SO.
717 Added Segment handler for backend server.
719 Added Zmbol/Zebra administrative functions to YAZ client.
721 Threaded frontend server on UNIX (when POSIX Threads are available).
722 Starting the server with option -T enables multi-threading.
726 Added configure option --enable-comp/disable-comp to control use
727 of YAZ ASN.1 compiler. Use --disable-comp to use the old *coders
728 located in sub directory asn.
730 YAZ ASN.1 compiler renamed to yaz-comp in sub directory. It's installed
731 in ${exec_prefix}/bin along with the other programs yaz-client and
734 GNU automake used to maintain makefiles.
738 Changed retrieval module so that we can load records with no abstract
739 syntax defined. Tagpaths in these records are fully composed of string
742 Implemented ISO ILL protocol. Refer to stuff in sub directory ill.
746 On UNIX, the generated makefile now supports a proper 'make install'.
747 The prefix can be set via GNU configure to set the install location
748 (default is /usr/local).
750 * YAZ programs client and ztest were renamed to yaz-client and
751 yaz-ztest to avoid conflicts when users install YAZ in "standard"
752 locations, such as /usr/bin,/usr/local/bin,etc.
754 * YAZ Header files were moved from include to include/yaz. YAZ Header
755 files are referred to as include <yaz/log.h> rather than <log.h>.
756 The YAZ include path (-I ..) is therefore the same as before. Programmers
757 should update their #include statements or use -Ipath/include/yaz
758 instead. The main motivation for doing this change is that YAZ header files
759 can be installed in "standard" locations /usr/include,/usr/local/include
760 without introducing conflicts, since ALL YAZ header files are stored
761 in subdirectory yaz (under /usr/include for example).
763 Compilation of YAZ for WIN32 is now handled by an nmake-style makefile
764 rather than project/workspace files. We switched because project files
765 are incompatible between Visual C++ 5 and 6. Refer to windows.txt for
768 Changed name of logging function, logf, to yaz_log, to prevent name
769 clash with some math-log functions. The YAZ header log.h defines logf
770 to yaz_log (#define) so there should be no incompatibilities by this
773 Added bend_start/bend_stop handlers for server. These handler are
774 called on start/stop of server. For windows they are called whenever
775 a service is started/stopped.
777 * YAZ now auto-generates decoders/encoders for the Z39.50 protocol using
778 a fairly small ASN.1 compiler written in Tcl. The compiler is located
779 in util/yc.tcl. The auto-generated C code structures are, in a few
780 cases, incompatible with the old decoders. There are differences in the
781 following C structures Z_DiagRec, Z_External, Z_SortRequest, Z_SortResponse,
782 Z_AttributesPlusTerm, Z_ProximityOperator, Z_DefaultDiagFormat.
783 The preprocessor variable ASN_COMPILED is defined when the compiled
784 ASN.1 is being used. Encoder/decoder routines as well as the Z39.50
785 protocol ASN.1 is located sub directory <tt>z39.50</tt>. If you
786 wish to use the old encoders/decoders you can specify --disable-yc
789 Assigned OID for old DB Update (VAL_DBUPDATE0). Updated YAZ compiled
790 version so that it supports both new - and old version of DB Update
792 * Added 'name' parameter to ODR encoder/decoder routines to facilitate
793 pretty ODR print. Updated whole Z39.50 encoder/decoder to reflect the
794 change. The name parameter can be set to 0 in which no name is specified
795 for the construction. The macros odr_implicit and odr_explicit sets name
796 parameter to zero for the construction involved. New macros
797 odr_implicit_tag and odr_explicit_tag are similar to the others,
798 except that a name parameter is added. For programmers' that don't use
799 ODR they probably only need to change the call to z_APDU and z_External.
801 Added access control facility by interfacing the TCP wrapper library.
802 YAZ automatically attempts to find the TCP wrapper Library (-lwrap) and
803 tcpd.h on Unix systems. For the server, option -d<daemon> specifies the
804 name of the daemon and enables the access control as specified in
805 hosts.allow/hosts.deny. Refer to man pages tcpd(8) and hosts_access(5).
807 Fixed memory leak in ccl_find_str and ccl_qual_rm. Thanks to Hans van
808 den Dool <H.M.vdnDool@kub.nl>.
810 Added reference ID parameter to most functions in server API - refer
811 to backend.h. Thanks to Hans van den Dool <H.M.vdnDool@kub.nl>.
813 Changed name of ccl library to libccl.a (was ccl.a).
815 Fixed bug in decoder for Explain (Category TargetInfo).
817 Added support for GNU readline in client. Thanks to Jacob Poulsen
818 <ja7@dbc.dk>. GNU configure attempts to detect if readline is available.
820 * CHANGED DEFINITION OF ES: UPDATE (INCLUDING THE OID) to reflect the
821 new definition from the ZIG. NOTE THIS IF YOU HAVE AN UPDATE
822 IMPLEMENTATION! This change was made to the development version before
823 the ZIG decided to retract the amendment. If any users MUST be
824 compatible with the original Update definition, PLEASE CONTACT US, and
825 we will include a separate definition corresponding to the old Update
826 ES. Note that because of the change to the ASN.1 of the
827 TaskPackageRecordStructure we cannot define a single structure that
828 will support both versions.
830 * Added const modifier to buffer parameter for some ODR/BER encoding
831 routines: ber_dectag, ber_declen, odp_more_chunks, completeBER,
832 completeWAIS, odr_dumpBER.
834 Fixed bug in client.c which caused a crash when a scanResponse didn't
835 contain positionOfTerm.
837 * Fixed inconsistency in the ScanResponse/ListEntries protocol. This
838 * will cause an error in a client if a non-YAZ target sends both a
839 * list of Scan entries and non-surrogate diagnostics.
841 Retrieval module enhancements. Tag sets may be typed in the reference
842 to it. From the .abs-file the "tagset" directive takes a third optional
843 integer type for the tag set referenced. From a .tag-file the "include"
844 directive takes a third optional type as well. The old "type" directive
845 in the tag set itself is still recognized but acts as the default type
848 Backend interface change. Individual Scan terms returned from bend_scan
849 may also be tagged as Surrogate Diagnostics. Refer to struct scan_entry
850 in include/backend.h.
852 Retrieval module enhancements. Multiple tag sets and attribute sets may
853 be specified in abstract syntax specs. Revised the error/warning for
854 logging messages reported by the retrieval module when reading the
857 Object Identifier system (oid_..) changed. The API is backwards
858 compatible but the oid-routines now allocates new OID's when needed.
859 Raw OID's may be specified in oid_getvalbyname.
861 YAZ now uses GNU configure to generate Makefile(s).
863 * Minor changes in some of the member names of DeleteResultSetRequest and
864 DeleteResultSetResponse. See include/proto.h.
866 * Changed some C definitions regarding EXPLAIN record syntax (prt-exp.h)
867 and added member 'languages' in TargetInfo (which was missing).
869 Changed the way attribute sets are handled in the retrieval
870 module. These are now cached, just like the abstract syntaxes
873 Changed YAZ so that it links with compiled ASN.1.
875 Added Explain-schema definitions and mapping routines. The following
876 Explain categories have been implemented: AttributeDetails,
877 AttributeSetInfo, DatabaseInfo, CategoryList and TargetInfo.
879 Fixed minor bug in Windows version of Server Library.
881 --- 1.4pl2+ 1998/4/17 (Released with Zebra)
883 Added Extended Services to server (backend.h). Thanks to Charles Woodfield.
885 Added EXTERNAL: UNIverse Resource Report (non-standard).
887 Implemened odr_enum and odr_set_of functions to handle ASN.1 types
888 ENUMERATED and SET OF.
890 * Added 'const' to some of the char pointer arguments for the
891 functions, data1_read_node, data1_getelementbytagname,
892 data1_insert_taggeddata, data1_getesetbyname, data1_getelementbyname,
895 Fixed bug in data1_insert_taggeddata - the last_child member of
896 parent wasn't initialised.
898 * Changed data1_read_record and data1_read_node so that the supplied
899 "SGML"-buffer is read-only. In particular the resulting data1 - tree
900 doesn't refer to any parts of the "SGML"-buffer.
902 Fixed bug in server library (Windows version of statserv_remove).
904 * Changed code so that it compiles as C++. The type definition
905 of Odr_fun which is a member of Odr_arm was changed. The result is,
906 that an explicit typecast is needed for the fun pointer when
907 using Odr_arm - as in:
908 {1, -1, -1, Z_IdAuthentication_idPass, (Odr_fun)z_IdPass},
910 Updated TagSet-G and -M definitions (tagsetm.tag and tagsetg.tag).
912 Implemented the new structured date and time definition as approved
913 by the ZIG. Added schemaId element to the specificTag in Espec-1
914 (also approved at the last ZIG). Thanks to RVDM.
916 Added some Object identifiers (RVDM).
918 Changed the Update Extended Service (RVDM).
920 Added command "refid" to client which specifies referenceId for
921 the following requests.
923 Implemented extended service handling for server. See ztest.c
924 for an example as well as backend.h. New handlers are registerd
927 * Changed interface for sort in server.
929 Added new members to statserv_options_block. It allows a server
930 to read options from another source than just the command line. Thanks
931 to Charles Woodfield.
933 * Changed definition of Z_Triple in file prt-grs.h - member boolean
934 renamed to zboolean. Some C++ compilers complained about the name.
936 Minor changes to gils.abs. Added index 's' (sort) on title
937 and date/time-last-modified.
941 Fixed bug in server library regarding inetd mode (-i). This bug
942 was introduced by release 1.4.
946 Added sort facility in client and backend server interface.
948 Fixed problem with dependencies in Makefile(s).
950 Fixed bugs for encoders/decoders of extended services and
953 Implemented sub-tree feature for schemas. Sub-trees are
954 referenced in *.abs-files. See explain.abs for an example
955 of the use of this feature.
957 Modified bib1.att; local attributes for ANY didn't include
958 ANY itself (only affects use of the retrieval module).
960 Fixed bug in plain SGML reader in function data1_read_node:
961 tags with prefix "var" was incorrectly interpreted as variants.
963 Added feature "sub-schemas" to enable references to - and definitions
964 of - group of elements.
966 * Removed member parent from type data1_element (in data1.h).
968 Implemented function odr_nullval() that returns the value of
971 * Removed member num_children from data1_node (in data1.h).
973 Made NT service interface part of the server library. The
974 function statserv_main uses the NT service when required and
975 calls the statserv_start / statserv_close routines.
977 Routine zget_SearchRequest and zget_PresentRequest fills
978 resultSetName/Id member with "default" instead of "Default".
980 Fixed memory leak in server. Request queue member wasn't freed.
982 Fixed nmem_exit so that memory is freed.
986 Revised the CCL parser utility to be thread safe.
988 Added function, oid_ent_to_oid, to replace the function
989 oid_getoidbyent, which is not thread safe.
991 * Added nmem_init and nmem_exit to initialize and release
992 NMEM resources. Function nmem_init should be called once in the
993 initial thread before NMEM/ODR is used. statserv.c and client.c
994 have been changed accordingly. The change was necessary to make
995 NMEM thread safe. The NMEM memory pool is shared amongst threads
996 in a process. Unix-based applications will still work fine without
999 Added NT Services interface for the the Z39.50 (statserv) Server.
1000 Refer to the ztest.c source on the usage.
1002 Windows 95/NT port using MSVC5.0. Project files are included in the
1005 * Defined new 'global' handle for the retrieval (data1) system. The
1006 new handled, data1_handle, describes the state of the data1 system.
1007 This handle is passed as first argument to virtually all
1008 data1 related routines. The functions data1_create and data1_destroy
1009 creates and destroys a data1 handle respectively.
1011 Added ODR encode stream member to all backend request structures
1012 init, search, scan etc. This stream should be used to allocate all
1013 memory used for the response when thread safe operation is needed.
1015 Changed the comstack utility, cs_addstr, to be thread safe. The
1016 returned hostname string returned by the function is now part the
1019 Added comstack utility, cs_straddr, which replaces the tcpip_strtoaddr
1020 function. The cs_straddr takes a COMSTACK handle as argument, so this
1021 function must be used after cs_create and before bind/connect.
1022 This function is thread safe.
1024 Moved test server to 'ztest' directory - generic server code still
1025 in 'server' directory.
1027 Made prefix query (pquery.c) utility thread safe.
1029 Added new function modifier YAZ_EXPORT to 'export' public DLL
1030 functions when using windows (see include/yconfig.h).
1032 Added definitions to the OID database (util/oid.c) (RVDM).
1034 Added new BIB-1 diagnostic messages to the handler diagbib1_str.
1036 Added call to ccl_rpn_delete in client program.
1038 Added ODR argument to ccl_rpn_query and ccl_scan_query to provide
1039 release of RPN structure.
1041 Added support for C++, headers uses extern "C" for public definitions.
1042 With input from RVDM.
1044 In handling of SEQUENCE OF: Counter set to zero when SEQUENCE OF is absent.
1045 Thanks to Ronald van der Meer (RVDM).
1047 Added initializers (zget_ routines) for a number of PDUs. Thanks to RVDM.
1049 Added support for private extensions to the OID database
1050 (oid_setprivateoids()). Thanks to RVDM.
1052 Added optional, physical ANY (key replication)
1054 Fixed null-reference problem in GRS-1 output filter.
1056 Proximity operator added to Prefix Query Format (PQF).
1058 In test client command "base" accepts multiple databases.
1060 Fixed bug in cs_close stack that caused trouble with WINSOCK.
1064 Fixed tagging bug in ResourceReportResponse PDU encoder/decode.
1066 Smallish bug-fixes in the new encoders/decoders (explain).
1068 Bug fixed in DeleteRequest.
1070 Fixed tagging bug of type 101 query in SearchRequest-Query PDU encoder/decoder.
1072 Fixed tagging bug in ResourceReportResponse PDU encoder/decode.
1074 Added SOIF syntax (using private OID for now) to retrieval module and client.
1076 Added Update extended service.
1078 Added SearchResult-1 additional info structure.
1080 Added optional CCL (ISO8777) interpreter as separate module. Available
1083 --- 1.2 1996/6/10 (1st anniversary release)
1085 Added Summary record syntax. Lightly tested.
1087 Added OPAC record syntax. Untested.
1089 Added ResourceReport service encoders/decoders. Untested.
1091 Fixed bug in z_Unit - wrong tagging on unitSystem.
1093 Fixed bug in the DiagRecs decoder.
1095 Added options for max PDU size and session timeout to frontend-server.
1097 Added documentation of query-language parsers and other supporting utilities.
1099 [frontend-server] Added Attribute set to the bend_scanrequest API.
1101 [frontend-server] NextResultSetPosition was sometimes set incorrectly when
1102 surrogate diagnostics were generated.
1104 [retrieval] Allow multiple local values for attribute.
1106 [retrieval] Allow multiple attributes per element in .abs files. index type.
1108 [retrieval] Added Summary tagset, abstract syntax, and d1-node/ASN filter.
1110 --- 1.1pl2 1996/4/10
1112 Minor changes, mostly specific to Zebra's requirements (retrieval)
1116 Repaired bug in frontend server when running multiple listening
1117 endpoints in dynamic mode.
1119 z_External() now won't break if a known, ASN.1 value comes encapsulated
1120 in an octet-string. The value will pass through unmodified in an Odr_oct.
1122 Added a bit of code to the demo client to decode & display
1123 ASN.1-structured records represented in the octet-aligned branch of
1124 the EXTERNAL CHOICE. Thanks to CAS for prodding us to finally do this.
1126 Added z_ext_getentbyref() to the ASN module. Doc updated.
1128 * Completed the SCAN definition in the ASN module. This may break SCAN
1129 code based on older YAZ-versions at compile-time. The fix is easy -
1132 * Added 'displayTerm' and OtherInformation to the TermInfo structure
1133 under the SCAN definition. Remember to initialize this, server-people.
1135 Comstack should now support the WAIS protocol in TCP/IP mode. Note
1136 that this does not extend to ODR and ASN.
1138 Comstack allows insertion of established socket (primarily for
1139 inetd-operation of servers). Doc updated.
1141 Front-end server can now start from the inetd in TCP mode. Doc
1144 --- 1.0pl4 1996/1/24
1148 Fixed small problem in SUTRS-filter. A newline was sometimes inserted before
1149 the rank and record number.
1151 Adjustments to the frontend server.
1153 Fixed diagnostic BER dumper. It ignored the file argument.
1157 Various changes to retrieval module.
1159 Changed the union discriminators of the protocol files from enums to
1160 ints paired with #defines.
1162 *Changed oident.class to oident.oclass to avoid a reserved word in C++
1165 *Changed operator in the RPN structure to 'roperator', again to avoid a
1168 Fixed problems in Explain decoders/encoders.
1170 --- 1.0pl2 1995/12/6
1172 Memory bug in log module fixed.
1174 --- 1.0pl1 1995/12/5
1176 Occasional malloc() of 0 bytes fixed in d1_espec.c.
1178 Bug in Explain DatabaseInfo module fixed.
1180 Some '\r' snuck into one or two of the ret'l config tables. A curse on Windows.
1184 The shift to v1.0 signals that we now consider the *core* functionality
1185 of YAZ reasonably stable (the core being more or less equivalent to
1186 Z39.50-1992). Some of the really nifty v3 stuff is still not heavily
1187 tested (Explain not at all - though that will happen soonish).
1189 Minor changes to code to support Windows port.
1191 Various minor changes after we're getting to use GRS-1 & co. more.
1193 Added Espec-1 format.
1195 Added VisibleString field body type to GRS-1. It is illegal acc. to my copy
1196 of the protocol and it cannot be selected when encoding (maps into 'string'
1197 when decoding). Needed to talk to some servers.
1199 Demo client can request simple element set names.
1201 Added Diagnostic Format encoders/decoders.
1203 Added simple Close handling to frontend server (no hooks for resource
1204 reporting yet), and demonstration client.
1206 Added cs_addrstr() command to COMSTACK to retrieve peer hostname/address.
1208 --- 1.0b3 1995/08/24
1210 Fixed bug in the frontend-server. The numberOfRecordsReturned field was
1211 handled incorrectly when records were requested in the searchResponse. This
1212 will only affect you if you use the frontend-server.
1214 Added GRS-1 encoders/decoders to the service-level API. Lightly tested.
1215 Test-client will ask for and print GRS1. Ztest will return dummy records
1218 Added Explain encoders/decoders to the service-level API. Untested.
1220 Added Extended Services: Item Order encoders and decoders to the Service-
1221 level API. Untested. We could use a recent copy of the pertinent bits
1222 of the ILL protocol to add those bits.
1224 Added diagnostic format 1 encoders/decoders to the service-level API.
1227 Moved pretty-printing of structure-wrappers ({..}) from odr_seq.c to
1228 odr_cons.c, which causes a more correct output.
1230 Fixed handling of searchRequest in frontend server. NextResultSetPosition
1231 was always set to 0 when no records were requested in the searchRequest.
1233 * Added better external-handling. This shouldn't harm old code that
1234 *encodes* externals. It can break code that looks for a
1235 'single-ASN1-type' representation, since those types that are known
1236 are now decoded immediately. Look at the SUTRS sample code in
1237 seshigh.c and client.c. Documentation updated.
1239 Handling of structured records in bend_fetchresponse. Length -1 marks
1240 structured record, type is deduced from format field.
1242 --- 1.0b2 1995/06/27
1243 Fairly quick maintenance release to add SUTRS support.
1245 Fixed handling of SUTRS records in the demonstration client.
1247 * Added format field to the bend_fetchrequest and bend_fetchresponce
1248 structures of the backend API (frontend server). When the record is
1249 returned, the value of the format field is mapped to an OID. The
1250 value VAL_SUTRS will also cause a slightly different ASN.1 packaging
1251 of the record. The special value VAL_NONE in the bend_request means
1252 that no specific format was requested by the client. Documentation
1253 updated accordingly. Test server (ztest) will return a fixed dummy
1254 SUTRS record if your client requests SUTRS.
1256 Documentation updated accordingly.
1258 You can now set external libraries and RANLIB support in the top-level
1262 First public release.