XML reader for data1 (EXPAT)
[yaz-moved-to-github.git] / CHANGELOG
index e6e6f79..472384b 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,8 +1,307 @@
 Possible compatibility problems with earlier versions marked with '*'.
 
-Added bend_start/bend_stop handlers for server. These handler
-are called on start/stop of server. For windows they are called
-whenever service is started/stopped.
+
+--- 1.8.7 2002/MM/DD
+
+XML reader for data1 (EXPAT).
+
+Fixed bug in ZOOM connect that occurred on OpenBSD (maybe others). Patch
+by Oleg Kolobov.
+
+Fixed bug in zget for parameter ExtendedServicesResponse.
+
+Fix OID for ILL.
+
+--- 1.8.6 2002/03/25
+
+Added PQF feature: '@attr type=value' may be written as '@type=value'.
+
+Client displays USR.1:SearchResult-1 (hits per term).
+
+Additional Search Info for search in Generic Frontend Server.
+
+Fixed CCL parsing of "field=s".
+
+WIN32 installer - using the excellent NSIS software from nullsoft.
+
+Fixed CCL parsing of "field = - <number>".
+
+Added function yaz_marc_decode that decodes MARC for line mode
+display or XML (similar to that used by JZKit).
+
+Fixed BER decoding of OPTIONAL CHOICE. The bug didn't affect the
+Z39.50. But ISO/ILL was, however.
+
+Added patch by Rustam T. Usmanov that implements Z39.50 duplicate
+detection service (Z39.50-1995 Amendment 2) and Language Negotiation (3).
+See:
+ http://lcweb.loc.gov/z3950/agency/amend/am2.html
+ http://lcweb.loc.gov/z3950/agency/defns/charneg-3.html
+
+--- 1.8.5 2002/02/03
+
+New YAZ client features: Command completion and new commands:
+push_command, set_apdufile, set_marcdump, set_cclfields, register_oid.
+Code provided by Jacob Poulsen.
+
+New call oid_trav, that visits all registered OIDs via callback.
+
+Function ZOOM_record_get now returns const char pointer rather than
+void pointer. It saves a lot of type casts.
+
+For YAZ client, command "auth" now allows you to set authentication
+in IdPass style. It is enabled when three tokens are given - order
+is user, group and password.
+
+Fix memory leaks in MARC record handling for ZOOM.
+
+New option for YAZ client, -k <kilobytes> that sets
+maximum record size. Similar to -k option for generic frontend
+server and yaz-ztest.
+
+More fixes for scan. Non-zero stepSize handled. OID's fixes.
+
+Prefix query parser reports "fail" when bad attribute set is given.
+
+Fix in MARC decoder. Proximity logging. Fix for attribute set
+in scan handler for server. Patches by Shigeru Ishida.
+
+SSL/COMSTACK updates. cs_rcvconnect completes SSL handshake. ZOOM
+works with SSL.
+
+Configure option --with-openssl=<dir> now works when a directory is
+specified. Patch provided by Morten Bøgeskov.
+
+New option for YAZ client, -u <auth>, that sets authentication.
+
+ZOOM fix: error information was sometimes "missing", since error
+was cleared/reset too when it shouldn't.
+
+ZOOM_record_get returns ISO2709 buffer when "raw" is given.
+
+--- 1.8.4 2002/01/04
+
+Scan for ZOOM API. New object ZOOM_scanset. New functions
+ZOOM_connection_scan, ZOOM_scanset_size, ZOOM_scanset_term and
+ZOOM_scanset_destroy.
+
+New ZOOM function, ZOOM_connection_last_event, that returns type
+of last event (such as "receive data", "send data", "apdu received",
+etc.
+
+New ZOOM option, schema, that specifies shema OID for retrieval.
+
+New CCL feature. Qualifiers can be aliases for one or more
+other qualifiers (if more than one is given, OR is used).
+
+ZOOM uses named result sets if target supports it.
+
+Two new YAZ client commands: .  (dot, which sources a script of YAZ
+client commands), and ! (to execute shell command.). Implemented
+by Jacob Poulsen.
+
+Working on Debian packages.
+
+--- 1.8.3 2001/11/19
+
+YAZ client enables named result sets only if target supports it.
+
+*** ZOOM. Prefix for ZOOM definitions changed from Z3950_ to ZOOM_.
+
+* ZOOM. Removed Z3950_connection_host. Use Z3950_connection_option_get
+with key="host" to get same result.
+
+* ZOOM. Added Z3950_record_clone and removed Z3950_resultset_get.
+Function Z3950_resultset_record(s) returns references to records
+"owned" by resultset. To become owner use Z3950_record_clone.
+
+Function z_ext_record handles Extended Services. Thanks to
+Irina Dijour.
+
+--- 1.8.2 2001/11/12
+
+CCL Parser fix: ignore token comma when dealing with and-lists.
+
+Documentation updates for COMSTACK.
+
+* ZOOM changes. Query object renamed from Z3950_search to Z3950_query.
+Changed prototype Z3950_records. For some functions, int parameters
+were changed to size_t.
+
+TCP/IP COMSTACK no longer uses getprotobyname to avoid memory leak
+on some Unices.
+
+New MARC decode/display function, marc_display_exl, which properly rejects
+non-ISO2709 records. YAZ client uses it.
+
+--- 1.8.1 2001/10/29
+
+Fix bug: local attribute set wasn't set correctly in PQF strings.
+
+--- 1.8 2001/10/25
+
+* Old Z39.50 codecs no longer supported. 
+
+Added ZOOM C binding. See http://zoom.z3950.org/
+
+Renamed states for COMSTACKs to avoid confusion with events.
+
+Implemented cs_look and proper cs_rcvconnect.
+
+Fixed COMSTACK error that occurred on HPUX. Fix by Giannis Kosmas.
+
+Configure detects POSIX threads on OpenBSD.
+
+When sort flag 'i' was specified in yaz-client the caseSensitivy flag
+was set to a wrong value.  Thanks to Robert Sanderson for reporting this.
+
+When error is returned from present handler, non-surrogate diagnostic
+is returned in present response (and fetch handler is no longer called).
+
+* Minor adjustments to pquery parser (PQF). Token characters may be
+escaped by using backslash (C-style).
+
+PQF parser allows string attribute values to be specified. For @attr,
+non-numeric characters after the equal-sign are treated as strings
+(e.g. @attr 9=title).
+
+CCL trunction character may be defined (@truncation in file)
+
+* function zget_ExtendedServicesRequest sets waitAction to
+  waitIfPossible (was wait).
+
+Added cs_set_blocking to set change blocking mode of a COMSTACK. Thanks
+to Matthew Carey.
+
+CCL operator names may be set in field definition files (CCL_bibset).
+See ccl/bib1 for an example.
+
+Fixes in ASN.1 compiler for C++ compatibility.
+
+* Renamed members "and" and "or" in struct Z_Operator to "op_and"
+and "op_or" to avoid conflict with C++.
+
+Fixed problem with GNU readline detection on Redhat 7.0.
+
+Added step-size for Scan backend handler.
+
+Fixed bug that made the frontend server crash when no attribute
+set was specified for scan.
+
+Front-end server automatically switches to original working directory
+when installed as an NT service. Previously -w had to be specified to
+make it work.
+
+Added extended attributes for retrieval module (data1), so that data1
+records carry d1_readXML/SGML attributes. d1_read also supports
+null-data rules ( <tag/>)
+
+On UNIX when POSIX threads are available, a separate library libyazthread
+is created. Programmers should link with that library and the yaz library
+when using threads. The reason for the split was that some applications
+on Linux, such as Apache, doesn't work well when using shared objects that
+relies on threads.
+
+Added SSL support for the COMSTACK. You start yaz-client and yaz-ztest
+(or any frontend server) in SSL mode by specifying ssl: followed by
+address. Only tested on UNIX.
+
+Added feature for CCL module. Virtual structure s=al or s=ol generates
+and-list and or-list respectively instead of phrase search.
+
+Added some OID's.
+
+* Added prefix "yaz_" for the functions log_init.., log_file..  and
+log_mask_str. This was done to avoid name conflicts with other libraries
+(such as other PHP extensions).
+
+Added raw OID member for preferred record syntax (request_format_raw)
+and returned record syntax (output_format_raw) for backend fetch method.
+
+Config file yaz-config now accepts options so that it returns specific
+compile settings, etc. Thanks to Morten Bøgeskov <morten@bogeskov.dk>
+
+Shared library support for UNIX using GNU libtool.
+
+* Modified backend interface. Request/Response struct's replaced by
+one read/write C struct. For example bend_fetchrequest and
+bend_fetchresult have been replaced by single bend_fetch_rr struct.
+Every handler - even search has to be registered in bend_init
+handler. This means that the YAZ library no longer refers to
+external functions and it makes it possible to make the whole
+thing a single DLL/SO.
+
+Added Segment handler for backend server.
+
+Added Zmbol/Zebra administrative functions to YAZ client.
+
+Threaded frontend server on UNIX (when POSIX Threads are available).
+Starting the server with option -T enables multi-threading.
+
+--- 1.6 2000/03/03
+
+Added configure option --enable-comp/disable-comp to control use
+of YAZ ASN.1 compiler. Use --disable-comp to use the old *coders
+located in sub directory asn.
+
+YAZ ASN.1 compiler renamed to yaz-comp in sub directory. It's installed
+in ${exec_prefix}/bin along with the other programs yaz-client and
+yaz-ztest.
+
+GNU automake used to maintain makefiles.
+
+Added several OID's.
+
+Changed retrieval module so that we can load records with no abstract
+syntax defined. Tagpaths in these records are fully composed of string
+tags.
+
+Implemented ISO ILL protocol. Refer to stuff in sub directory ill.
+
+--- 1.5 1999/12/10
+
+On UNIX, the generated makefile now supports a proper 'make install'.
+The prefix can be set via GNU configure to set the install location
+(default is /usr/local).
+
+* YAZ programs client and ztest were renamed to yaz-client and
+yaz-ztest to avoid conflicts when users install YAZ in "standard"
+locations, such as /usr/bin,/usr/local/bin,etc.
+
+* YAZ Header files were moved from include to include/yaz. YAZ Header
+files are referred to as include <yaz/log.h> rather than <log.h>.
+The YAZ include path (-I ..) is therefore the same as before. Programmers
+should update their #include statements or use -Ipath/include/yaz
+instead. The main motivation for doing this change is that YAZ header files
+can be installed in "standard" locations /usr/include,/usr/local/include 
+without introducing conflicts, since ALL YAZ header files are stored
+in subdirectory yaz (under /usr/include for example).
+
+Compilation of YAZ for WIN32 is now handled by an nmake-style makefile 
+rather than project/workspace files. We switched because project files
+are incompatible between Visual C++ 5 and 6. Refer to windows.txt for
+details.
+
+Changed name of logging function, logf, to yaz_log, to prevent name
+clash with some math-log functions. The YAZ header log.h defines logf
+to yaz_log (#define) so there should be no incompatibilities by this
+modification.
+
+Added bend_start/bend_stop handlers for server. These handler are
+called on start/stop of server. For windows they are called whenever
+a service is started/stopped.
+
+* YAZ now auto-generates decoders/encoders for the Z39.50 protocol using
+a fairly small ASN.1 compiler written in Tcl. The compiler is located
+in util/yc.tcl. The auto-generated C code structures are, in a few
+cases, incompatible with the old decoders. There are differences in the
+following C structures Z_DiagRec, Z_External, Z_SortRequest, Z_SortResponse,
+Z_AttributesPlusTerm, Z_ProximityOperator, Z_DefaultDiagFormat.
+The preprocessor variable ASN_COMPILED is defined when the compiled
+ASN.1 is being used. Encoder/decoder routines as well as the Z39.50
+protocol ASN.1 is located sub directory <tt>z39.50</tt>. If you
+wish to use the old encoders/decoders you can specify --disable-yc
+for configure.
 
 Assigned OID for old DB Update (VAL_DBUPDATE0). Updated YAZ compiled
 version so that it supports both new - and old version of DB Update