# # spec file for package yaz (Version 3.0.2) # # Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine # package are under the same license as the package itself. # # Please submit bugfixes or comments via http://bugs.opensuse.org/ # # norootforbuild Name: yaz BuildRequires: libpcap libxml2-devel libxslt-devel openssl-devel readline-devel tcpd-devel # libxml2-devel Version: 3.0.2 Release: 1 License: BSD License and BSD-like, GNU General Public License (GPL) Group: Development/Libraries/C and C++ Source: http://ftp.indexdata.dk/pub/yaz/%{name}-%{version}.tar.gz Patch0: yaz-codecleanup.36.diff Patch1: yaz-codecleanup.44.diff Patch2: yaz-3.0.2-client.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build URL: http://www.indexdata.dk/yaz/ Summary: Z39.50/SRW/SRU Programs %description This package contains both a test-server and clients (normal & ssl) for the ANSI/NISO Z39.50 protocol for Information Retrieval. SRW and SRU clients and servers are also supported. Authors: -------- Adam Dickmeiss %package -n libyaz Summary: Z39.50 Library Group: Development/Libraries/C and C++ Requires: libxml2 # Requires: libxml2 openssl %description -n libyaz YAZ is a C library for developing client - and server applications using the ANSI/NISO Z39.50 protocol for Information Retrieval. Authors: -------- Adam Dickmeiss %package -n libyaz-devel Summary: Z39.50 Library Group: Development/Libraries/C and C++ Requires: libyaz = %{version} Requires: openssl-devel libxslt-devel tcpd-devel %description -n libyaz-devel YAZ is a C library for developing client - and server applications using the ANSI/NISO Z39.50 protocol for Information Retrieval. Authors: -------- Adam Dickmeiss %prep %setup -q %patch0 -p 1 %patch1 -p 1 %patch2 -p 1 %build # --with-dsssl=/usr/share/sgml/docbook/dsssl-stylesheets \ # --with-dtd=/usr/share/sgml/db41xml export CFLAGS="%{optflags} -W -fno-strict-aliasing" %configure --enable-shared \ --enable-tcpd \ --with-xslt \ --with-openssl %{__make} %{?jobs:-j%jobs} %install %{makeinstall} #pushd doc # make prefix=${RPM_BUILD_ROOT}/usr install # make DESTDIR=${RPM_BUILD_ROOT} install #popd # Unwanted doc stuff rm -fr $RPM_BUILD_ROOT%{_datadir}/doc rm -fr html mkdir html cp -a doc/*.html html # cp doc/*pdf . ln -sf introduction.html html/index.html # yaz.pdf %define DOCFILES README LICENSE NEWS TODO { echo "%{name} documentation directory" echo "
    " echo "
  • %{name}, official documentation (local)" for f in %{DOCFILES} http://www.indexdata.dk/links/ ; do if [ "http:" = "${f%%%%/*}" ]; then echo "
  • $f" continue fi [ -f $f ] || continue echo "
  • $f" done echo "
  • " } >index.html /sbin/ldconfig -n $RPM_BUILD_ROOT%{_libdir} %clean rm -fr ${RPM_BUILD_ROOT} %post %run_ldconfig %postun %run_ldconfig %files %defattr(-,root,root) %{_bindir}/yaz-client* %{_bindir}/yaz-ztest* %{_bindir}/yaz-iconv %{_bindir}/yaz-marcdump %{_bindir}/zoomsh %ifarch %ix86 ia64 s390 ppc %{_bindir}/ziffy %endif %{_mandir}/*/yaz-client.* %{_mandir}/*/ziffy.* %{_mandir}/*/zoomsh.* %{_mandir}/*/yaz-ztest.* %{_mandir}/*/yaz-iconv.* %{_mandir}/*/yaz-log.* %{_mandir}/*/yaz-marcdump.* %files -n libyaz %defattr(-,root,root) %doc %{DOCFILES} %doc index.html html # %doc doc/yaz.pdf %{_libdir}/*.so.* %{_mandir}/*/yaz.* %dir %{_datadir}/yaz %{_datadir}/yaz/etc %files -n libyaz-devel %defattr(-,root,root) %{_bindir}/yaz-config %{_bindir}/yaz-asncomp %{_includedir}/yaz %{_libdir}/*.so %{_libdir}/*.a %{_libdir}/*.la %{_datadir}/yaz/z39.50 %{_datadir}/yaz/ill %{_datadir}/aclocal/yaz.m4 %{_mandir}/man8/yaz-config.* %{_mandir}/man1/yaz-asncomp.* %{_libdir}/pkgconfig/yaz.pc %changelog * Thu May 10 2007 - ke@suse.de - Version 3.0.2, which is binary incompatible (from the NEWS file since 3.0.0 resp. 2.1.48): * Split YAZ library into libyaz and libyaz_server. * CCL and other enhancements: partial support for ISO5428-1984 (Greek). * Bug fixes. - Adjust yaz-codecleanup.36.diff for version 3.0.2 (see yaz-3.0.2-client.diff). - Add -fno-strict-aliasing because of query-charset.c: 47 * Thu Jan 25 2007 - lrupp@suse.de - updated to 2.1.48 - enabled with-xslt (add: libxml2-devel to BuildRequires) - build parallel - add libxml2 to requires for libyaz - package ziffy only on %%ix86 ia64 s390 ppc (needs more improvement) * Wed Jan 10 2007 - ke@suse.de - Version 2.1.44 (from the NEWS file since 2.1.36): * Bug fixes. * Rename yaz-marcdump options. * Add ziffy, the promiscuous Z39.50 APDU sniffer (GPL v2). * Updates for SRU Update, * Wed Oct 25 2006 - ke@suse.de - Version 2.1.36 (from the NEWS file since 2.1.32): * Implemented yaz_filepath_comp which splits a path into file path components (required by Zebra 2.0.3+). * Bugfixes: Missing log lines; CQL to PQF translation: preserve double-quote escaping; add SRU diagnostics; fix printf specifiers [# 214434, reported by David Binderman]; change type of optval from long to int for invocation of setsockopt with the SO_REUSEADDR option. * New ZOOM function, ZOOM_connection_is_idle, which checks whether a connection is idle. * Add support for specifying the max log file size for the Generic Frontend Server. The size is given with option -r. - Update yaz-codecleanup.diff as yaz-codecleanup.36.diff * Wed Oct 18 2006 - pth@suse.de - Cleaned up the code a bit. - Fix an off-by-one error (#207880). * Thu Sep 21 2006 - ke@suse.de - Version 2.1.32 (from the NEWS file): * Fix problem WRT unix sockets in the ZOOM code. * Tue Sep 19 2006 - ke@suse.de - Version 2.1.30 (for more information see the NEWS file): * Fix bug in Generic Frontend Server that could cause a server to stop accepting new connections. * For the generic frontend server, the maximum record size is used as maximum size of incoming packages (SRU + Z39.50). * TCP/IP comstack uses getaddrinfo now to resolve names. It should be IPV6 friendly now. * Fix bug: Using Non Reentrant gethostbyname causes SIGSEGV. * New option for yaz-marcdump -lpos=value which allows setting a portion of MARC header to a certain value. * Fixes for MARC generation when encoded as MARC-8. * ZOOM-C reads option extraArgs. If set the value of extraArgs is appended to SRU URI (POST/GET). Value must be URL encoded, such as x-id-a=v1&x-id-b=v2 . * Thu Aug 17 2006 - ke@suse.de - Version 2.1.26: Two bug fixes. * Mon Aug 14 2006 - ke@suse.de - yaz-devel: Requires libxslt-devel. * Thu Aug 10 2006 - ke@suse.de - Update to 2.1.24 (from NEWS since 2.1.18): * Fixed MARC ISO2709 encoding routines * Change cql2pqf transformation to use a different evaluation order. * For Libxml2 and friends, YAZ defines YAZ_HAVE_{XML2,XSLT,EXSLT) in the compilation phase, but also for yaz-config --cflags output. * Change SRU update structure bend_update_rr so that SRU diagnostics are stored in uri, message and details. * Add support for CCL, compiled on the client side, in ZOOM-C. * Enhancements for yaz-client (sru). * Documentation for YAZ is now based on the Docbook XML/XSLT using xsltproc + N Walsh's stylesheets. * Add retrieval handling support in Generic Frontend Server to support conversion between MARC/XML as well as XSLTtransforms. See etc/yazgfs.xml for an example. * Add authentication support to Generic Frontend Server in SRU mode. * Add support for a new character set MARC8s identical to MARC8 except that it converts combined characters to single Unicode characters in the Latin-1 range (when possible). * And more bug fixes and new features. * Thu Jun 01 2006 - ke@suse.de - Update to version 2.1.18 (from NEWS): * Improve MARC, ZOOM, and CQL; MARC-8 support. * Better localization. * Add ZiNG Update Support. * Various Bug fixes. * Wed Jan 25 2006 - mls@suse.de - converted neededforbuild to BuildRequires * Wed Jun 08 2005 - ke@suse.de - Update to version 2.1.8. * Fri May 27 2005 - ke@suse.de - Update to version 2.1.6 (from NEWS): * Add support for SRW sort in Generic Frontend Server. * Bugfixes (for more info see NEWS). * Thu Apr 28 2005 - ke@suse.de - Update to version 2.1.4 (from NEWS): * Change include/yaz/diagbib1.h and added include/yaz/diagsrw.h with diagnostic messages+codes for Bib-1 and SRW. * Modify the yaz-marcdump utility to skip garbage bytes between MARC records in a file. Also skip garbage bytes between ISO2709 records rather than abort. * Program yaz-client now exits and produces an error message if multiple Z39.50 servers are specified on the command line. - Remove expat from neededforbuild. * Tue Apr 05 2005 - ke@suse.de - Update to version 2.1.2 (from NEWS): * Add support for virtual hosts and multiple backend servers for the YAZ frontend server. The configution is XML based and support specificition of CQL to RPN mappings and explain information. See section "Virtual Hosts" in the YAZ manual. * Extended OPAC display utility. OPAC display utility renders bibliographic (MARC) record as well. * Thu Feb 10 2005 - ke@suse.de - Update to version 2.0.34: * Fix bugs in the MARC-8 to UTF-8 conversion. * Add support for the proposed MarcXchange format. * Wed Jan 12 2005 - ke@suse.de - Update to version 2.0.32: * Add support for SRW scan in yaz-client and Generic Frontend Server. * Tue Jan 04 2005 - ke@suse.de - Update to version 2.0.30: * Bug fixes. * Change logging behavior. * Tue Nov 16 2004 - ke@suse.de - Update to version 2.0.28; changes since 2.0.26: * Various bug fixes. * Improve documentation. - Add tcpd and tcpd-devel to neededforbuild. * Fri Oct 08 2004 - ke@suse.de - Update to version 2.0.26; changes since 2.0.22: * Various bug fixes. * Add YAZ GFS support for conversion from Z39.50 surrogate diagnostics to SRW surrogate diagnostics. * Fixes for MARC-8 in yaz_iconv character set utilies. The MARC-8 to UTF-8/UCS conversion is now only based on codetables.xml. * Mon Aug 09 2004 - ke@suse.de - Update to version 2.0.22; changes: * Add support for more "commit changes" in ZOOM (uses Extended Services). * For yaz-client, command set_marcdump / -m dumps SUTRS/XML/.. records as well. * Fri May 28 2004 - ke@suse.de - Update to version 2.0.21; changes: * SSL comstack now uses yaz.pem certificate file on server side by default. Certificate filename can be configured by calling comstack function cs_set_ssl_certificate_file before cs_bind is used. * Fix bug regarding multiple calls to ZOOM_connection_connect. * Implement cs_set_ssl_ctx which sets SSL_CTX for SSL comstack. * Do not create SSL_CTX in cs_create (ssl_type). Create in tcpip_bind, tcpip_rcvconnect instead. This allows user to set custom SSL_CTX. * ZOOM now allows inspection of X509 peer certificate for verification. The X509 buffer is retrived by reading ZOOM option "sslPeerCert". * Remove libyazssl.la. When SSL is enabled, libyaz.la has SSL support and all programs have too (yaz-ztest, yaz-client, zoom..). * Documentation about MARC decoding tools. * Fix encoding of xsd:string to use text instead of CDATA. * Fix endless loop in CQL parser with unbalanced ". * Use a more compact way to store MARC-8 conversion tables. * Fix a bug in yaz_iconv regarding conversion to UCS4 / UCS4LE. * Update CQL parser to use new CQL 1.1 modifiers for booleans and relations. * Another fix for decoding of XML packed records. * Fixes for Chunked encoding. White space not ignored after length spec. * Implement chunked HTTP transfer. * Wed May 12 2004 - ro@suse.de - added -fno-strict-aliasing * Tue Feb 17 2004 - ke@suse.de - Update to version 2.0.12; changes: * Various enhancements to yaz-client. * Fix various bugs (encoding related, memory leak, etc.). * Fix compilation for SSL which wasn't properly enabled for all platforms. * MARC conversion can now generate ISO2709 output in another character set. * ZOOM-C enhancements. * New utilities: yaz-iconv and yaz-marcdump. * Enhancements to the generic front-end server. * Sat Jan 10 2004 - adrian@suse.de - add %%defattr and %%run_ldconfig * Thu Oct 16 2003 - ke@suse.de - Update to version 2.0.4; changes: - Allow any CQL relation (not just all,any,exact,scr). - Fixes for OCLC UI ASN.1 to make it work with SilverPlatter targets that features the same UI. - Implement command update0 in YAZ client which is equivalent to update but uses old of Ext Update ASN.1. - Use OID 1.2.840.10003.15.1000.81.1 for privately defined charsets in charset negotiation. Added VAL_ID_CHARSET in oid.h. Previously no OID was used for this info. - ZOOM uses smallSetUpperBound=1 instead of 0 for piggyback searches. It apparantely upsets EBSCO Publishing IR Z39.50 Server which returns 'malformed search term' otherwise. - SortResponse member resultCount now set to NULL in sort handler of frontend server. - OPAC support ZOOM. ZOOM_record_get returns OPAC info (as XML) if type is "opac". - Add three new utility functions for translating OIDs between various formats -- symbolic name such as "Usmarc", minus-1-terminated int arrays and dotted strings such as "1.2.840.10003.9.5.1". - Revert modifications for ES Update definition for z_IU0Update (OID 1.2.840.10003.9.5.1 and 1.2.840.10003.9.5). The definition is back to YAZ 2.0.2. - String value attributes for CCL parser. - Support for OCLC's locally registered "OCLC-UserInformation" PDU, which their FirstSearch server returns in Init responses, sometimes carrying useful diagnostic information when Init fails. This has the OID 1.2.840.10003.10.1000.17.1 and is defined in the file "z39.50/oclcui.asn", where its definition is somewhat different from what OCLC document on their web-site, as required to interoperate with their servers. - Support for anonymous authentication in yaz-client. Use the command "auth -". - Fix the OID of the Index Data-local "admin" Extended Service from 1.2.840.10003.9.81.1 to 1.2.840.10003.9.1000.81.1. The omission of the 1000, which indicates a locally-defined OID, was a mistake. * Mon Jun 23 2003 - ke@suse.de - Update to version 2.0.3; changes: - Fix CCL directive @case handling so that it affects string match for both CCL keywords and qualifiers. - * ESFormat-Update updates. Packages with OID 1.2.840.10003.9.5.1 and 1.2.840.10003.9.5 are now handled by the same decoder z_IU0Update . Decoder has been updated with ASN.1 changes as listed in http://lcweb.loc.gov/z3950/agency/defns/updateES.html - ZOOM_record_get may now return a record in a specific character set. For type use "form; charset=from[,to]" where form (render, xml, ..), "from" is the character set of record as returned by target. "to" is the character set to be returned. If omitted, "to" is UTF-8. - YAZ ASN.1 compiler renamed from yaz-comp to yaz-asncomp - New ODR utility, odr_getelement, which returns name of element for which encoding/decoding failed. - Fixed ODR so that it returns error code OREQUIRED rather than ONONE in cases where a required element was omitted. - Bug fix: some MARC8 sequences were not converted. - New ZOOM option "step" which specifies number of records to be retrieved in one chunk. Used in conjunction with "start" and "count". - SRW support for yaz-client. Use scheme http: to use it, e.g. http://host:port/db - yaz-client no longer does (un)intelligent character set conversions by default. Can be enabled with charset and marc_charset commands. - New function, cql_strerror() translates SRW error codes, as returned by cql_transform_error(), into human-readable English strings. Used in yaz-client diagnostics when appropriate. - New CQL2RPN query-type for the command-line yaz-client, parses CQL and converts it into a type-1 query which is sent to the server. This makes CQL available for use with all Z-servers, as opposed to the tiny minority that can handle CQL queries themselves. * Thu Jun 12 2003 - kukuk@suse.de - Add missing directory to filelist * Mon May 26 2003 - ke@suse.de - Remove unwanted files from $RPM_BUILD_ROOT. * Thu May 22 2003 - ke@suse.de - Split subpackage libyaz into libyaz and libyaz-devel. * Thu May 22 2003 - ke@suse.de - Update to version 2.0.2; changes: - New ZOOM events ZOOM_EVENT_RECV_{RECORD,SEARCH} for receiving a record and search result respectively. - New member 'schema' in struct bend_fetch_rr which the name of requested schema (SRW/SRU) for record (or NULL if none was given). The fetch handler MAY set this to reflect the schema of the returned record. - New member 'display_term' in struct scan_entry. GFS now sets member entries and allocates scan entries to be filled by user scan handler. In previous version, entries member was allocated by the scan handler. That still works, but the GFS will ignore member display_term - assuming it was NOT set by the handler. The fact that the GFS now allocates the entries both allows for new members and makes a scan handler easier to write. - SRW/SRU recordPacking. For SRW default recordPacking is string. For SRU default recordPacking is string. - SRU protocol support for frontend server. - Add missing PQF transform rules for <= and >= . - Added scan for the ZOOM shell (zoomsh). - Bugfix: CQL lex buffer overflow. - Split package into yaz and libyaz. * Wed Mar 26 2003 - ke@suse.de - Update to version 2.0; changes: Possible compatibility problems with earlier versions marked with '*'. - * String Identifers for Schemas (Amendment 5). http://lcweb.loc.gov/z3950/agency/amend/am5.html - * resultCount parameter to Sort Response (Amendment 1). http://lcweb.loc.gov/z3950/agency/amend/am1.html - Support for SRW 1.0 over HTTP. This is an optional feature and requires libxml2 to operate. Enable SOAP by specifying --with-xml2 for configure (not enabled on SuSE Linux). - Generic frontend server supports HTTP/SOAP/SRW and Z39.50/BER on the same port. SRW SearchRetrieveRequests are mapped to bend_init,bend_search,bend_fetch,bend_close. - Add Z39.50 Query Type-104 - to facilitate CQL within Z39.50. - CQL support. Source is directory 'cql'. CQL is supported in ZOOM (both SRW and Z39.50) and the YAZ client (Z39.50 only). - ZOOM connections are SRW based if schem http is used for hostname in connect, e.g. z = ZOOM_connection_new("http://myserver"); ZOOM_query may be of type CQL, e.g. ZOOM_query_cql(q, "dc.title=x"); - CCL proximity operators !n, %%n converts to PQF @prox 0 n 1 2 k 2 and @prox 0 n 0 1 k 2 respectively, meaning: exlusion=false, distance=n, order=true/false, relation=le, prox unit=word. If n is omitted, distance 1 is used. - New MARC decode API. All new functions operate on a yaz_marc_t handle. The most important new functions are: yaz_marc_create, yaz_marc_decode_{buf,wrbuf}, yaz_marc_destroy, .. to create handler, decode and destroy respectively. Decoder can produce formats MARC line, simple XML, OAI MARC and MARC XML (LoC). See include/yaz/marcdisp.h. - YAZ Iconv utility now supports MARC8 decoding (marc8.c). Converts to UTF-8, UCS-32, wchar_t or Latin-1. - * Prototypes for yaz_iconv_-functions moved to separate header include/yaz/yaz-iconv.h. - Make a few private functions 'static' in unix.c. This prevents duplicate unix_close in PHP with YAZ and imap. PHP Bug 20977. - For ZOOM connection, the options targetImplementation{Id,Name,Version} are set when Init Response is received. - New function ZOOM_connection_error_x similar to ZOOM_connection_error but returns diagnostic set as well. - New function yaz_strerror which is a portable wrapper for strerror/strerror_r/GetLastMessage. - * ZOOM_record_get supports type "xml" in which case MARC XML (from LOC) is returned for MARC. If type is "oai", then OAI MARC is returned. * Fri Nov 29 2002 - ke@suse.de - Update to version 1.9.2; changes: * yaz_marc_decode uses OAI MARC as XML format for ISO2709 records. * Fix bad race conditions on SIGTERM and terminate gracefully in frontend server. * Move retrieval (data1) module to Zebra (now package "idzebra"). * Add GRS-1 render for ZOOM using same format as yaz-client. * Fri Nov 22 2002 - ke@suse.de - Update to version 1.9.1; changes since 1.8.8: * Add man pages: yaz-client(1), yaz-ztest(8), yaz(7), zoomsh(1). * Bugfixes: ESpec handling in data1 module; handle PDU encoding failures properly; ZOOM_record_get for type "database"; ZOOM C record cache so that preferredRecordSyntax and elementSetName is used to check for already fetched records. * SGML reader parses comments and makes them part of the data1 tree. * Add more Bib-1 diagnostics (approved extensions). * PQF parser rejects bad queries - including those with extra characters in them. PQF parser used to silently ignore that. Cleaner API for PQF added, which allows you to get detailed error information for bad queries (see yaz/pquery.h). * Use iconv. * Remov XML reader (d1_expat.c). It's part of Zebra instead. * Mon Aug 05 2002 - ke@suse.de - Update to version 1.8.8: * Bug fixes. * Modify data1 to handle XML and character set encodings. * New COMSTACK type: local UNIX socket. It's useful if you have a local service and/or want extreme performance. - Add expat and readline-devel to #neededforbuild to link against expat and readline. * Mon May 27 2002 - ke@suse.de - Update to version 1.8.7: - Bug fixes. - Better i18n support (ZOOM API and YAZ client). * Wed May 08 2002 - ke@suse.de - Use %%_libdir macro. * Mon Apr 08 2002 - ke@suse.de - Update to version 1.8.6. * Mon Mar 11 2002 - ke@suse.de - New package: version 1.8.5.