<option defaultValue="true" id="macosx.cpp.link.option.shared.2082905640" name="Shared (-dynamiclib)" superClass="macosx.cpp.link.option.shared" valueType="boolean"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.assembler.macosx.base.1871976203" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.macosx.base">
- <option id="gnu.both.asm.option.include.paths.998378482" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath"/>
+ <option id="gnu.both.asm.option.include.paths.998378482" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths"/>
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1256561366" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.archiver.macosx.base.1171332498" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.macosx.base"/>
<entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="client"/>
<entry excluding="*.o|*.lo" flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="test"/>
<entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="zoom"/>
+ <entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="ztest"/>
</sourceEntries>
</configuration>
</storageModule>
DEBIAN_DIST="squeeze lenny"
-UBUNTU_DIST="lucid karmic"
+UBUNTU_DIST="maverick lucid karmic"
---- 4.0.13 2010/MM/DD
+tcp comstack: change behavior for @-specs (anyaddr). @ listens on
+AF_INET (IPV4) peers, and @6 listens to AF_INET6 (ipv6) peers.
+Previously @ listened on AF_INET6 which accepted both IPV4 and IPV6
+peers on some Linux systems. However, in general that does not work
+so YAZ can not rely on that to work. Debian changed behavior in this
+respect from Debian lenny to Debian squeeze (still testing as of Oct
+2010). Refer to:
+http://www.mail-archive.com/debian-devel@lists.debian.org/msg277726.html
+
+--- 4.1.1 2010/10/05
+
+Fix yaz-config output: echo_source not set correctly by configure.
+
+--- 4.1.0 2010/10/05
SOLR WebService support for yaz-client and ZOOM.
+Define record syntax JSON. OID: 1.2.840.10003.5.1000.81.3 .
+
--- 4.0.12 2010/08/17
Z39.50 facet support. Facet specifications are passed for search in
dnl This file is part of the YAZ toolkit.
dnl Copyright (C) 1995-2010 Index Data
AC_PREREQ([2.60])
-AC_INIT([yaz],[4.0.13],[yaz-help@indexdata.dk])
+AC_INIT([yaz],[4.1.1],[yaz-help@indexdata.dk])
AC_CONFIG_SRCDIR([configure.ac])
AC_CONFIG_AUX_DIR([config])
AM_INIT_AUTOMAKE([1.9])
AC_DEFINE([TRACE_XMALLOC],[0])
fi
dnl
-dnl ------ Using this for "in-source" yaz-config
-AC_SUBST([YAZ_SRC_ROOT])
-AC_SUBST([YAZ_BUILD_ROOT])
-YAZ_SRC_ROOT=`cd ${srcdir}; pwd`
-YAZ_BUILD_ROOT=`pwd`
-dnl
dnl ------ versioning
dnl
WIN_FILEVERSION=`echo $PACKAGE_VERSION | $AWK 'BEGIN { FS = "."; } { m = $4; printf("%d,%d,%d,%d", $1, $2, $3 == "" ? "0" : $3, $4 == "" ? "1" : $4);}'`
win/version.nsi
include/yaz/yaz-version.h
],[
- sed s%yaz_echo_source=yes%yaz_echo_source=no%g < yaz-config > util/yaz-config && chmod +x yaz-config util/yaz-config
+ sed s%echo_source=yes%echo_source=no%g < yaz-config > util/yaz-config && chmod +x yaz-config util/yaz-config
]
)
+yaz (4.1.1-1indexdata) unstable; urgency=low
+
+ * Upstream.
+
+ -- Adam Dickmeiss <adam@indexdata.dk> Tue, 05 Oct 2010 15:00:39 +0200
+
+yaz (4.1.0-1indexdata) unstable; urgency=low
+
+ * Upstream.
+
+ -- Adam Dickmeiss <adam@indexdata.dk> Tue, 05 Oct 2010 10:09:48 +0200
+
yaz (4.0.13-1indexdata) unstable; urgency=low
* Upstream.
debian/tmp/usr/share/man/man1/yaz-asncomp.1
debian/tmp/usr/share/man/man7/yaz.7
-debian/tmp/usr/share/man/man8/yaz-config.8
+debian/tmp/usr/share/man/man1/yaz-config.1
HTMLFILES = index.html
MANFILES=yaz-client.1 yaz-ztest.8 \
- yaz-config.8 yaz.7 zoomsh.1 yaz-asncomp.1 \
+ yaz-config.1 yaz.7 zoomsh.1 yaz-asncomp.1 \
yaz-marcdump.1 yaz-iconv.1 yaz-log.7 \
yaz-illclient.1 yaz-icu.1 bib1-attr.7 \
yaz-json-parse.1
yaz-ztest.8: yaz-ztest-man.xml gfs-options.xml gfs-synopsis.xml gfs-virtual.xml
$(MAN_COMPILE) $(srcdir)/yaz-ztest-man.xml
-yaz-config.8: yaz-config-man.xml
+yaz-config.1: yaz-config-man.xml
$(MAN_COMPILE) $(srcdir)/yaz-config-man.xml
yaz.7: yaz-man.xml
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"
- "http://www.oasis-open.org/docbook/xml/4.1/docbookx.dtd"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+ "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"
[
<!ENTITY % local SYSTEM "local.ent">
%local;
<refentryinfo>
<productname>YAZ</productname>
<productnumber>&version;</productnumber>
+ <info><orgname>Index Data</orgname></info>
</refentryinfo>
<refmeta>
<refentrytitle>Bib-1 Attribute Set</refentrytitle>
<manvolnum>7</manvolnum>
+ <refmiscinfo class="manual">Conventions and miscellaneous</refmiscinfo>
</refmeta>
<refnamediv>
-Subproject commit ca4e4fa028634b4e07f011eb6375e205ae96c709
+Subproject commit 00de5ca16beac9c3ac135ff92ff719b86b0c6df9
</para></listitem>
</varlistentry>
+ <varlistentry><term><literal>-K</literal></term>
+ <listitem><para>
+ Forces no-keepalive for HTTP sessions. By default GFS will keep
+ sessions alive for HTTP 1.1 sessions (as defined by the standard).
+ Using this option will force GFS to close the connection for each
+ operation.
+ </para></listitem>
+ </varlistentry>
+
<varlistentry><term><literal>-r </literal>
<replaceable>size</replaceable></term>
<listitem><para>
<arg choice="opt"><option>-C <replaceable>fname</replaceable></option></arg>
<arg choice="opt"><option>-t <replaceable>minutes</replaceable></option></arg>
<arg choice="opt"><option>-k <replaceable>kilobytes</replaceable></option></arg>
+ <arg choice="opt"><option>-K</option></arg>
<arg choice="opt"><option>-d <replaceable>daemon</replaceable></option></arg>
<arg choice="opt"><option>-w <replaceable>dir</replaceable></option></arg>
<arg choice="opt"><option>-p <replaceable>pidfile</replaceable></option></arg>
<para>
&yaz; is a C/C++ library for information retrieval applications
- using the Z39.50/SRU protocols for information retrieval.
+ using the Z39.50/SRU/SOLR protocols for information retrieval.
</para>
<para>
<listitem><para>
Supports
<ulink url="&url.sru;">SRU GET/POST/SOAP</ulink>
- version 1.1 (over HTTP and HTTPS).
+ version 1.2 (over HTTP and HTTPS).
</para></listitem>
<listitem><para>
Includes BER encoders/decoders for the
protocol.
</para></listitem>
<listitem><para>
+ Supports
+ <ulink url="&url.solr;">SOLR</ulink> Web Service version 1.4.x (client side only)
+ </para></listitem>
+ <listitem><para>
Supports the following transports: BER over TCP/IP
(<ulink url="&url.ber.over.tcpip;">RFC1729</ulink>),
BER over unix local socket, and
</para></listitem>
<listitem><para>
Offers
- <ulink url="&url.zoom;">ZOOM</ulink> C API implementing both
- Z39.50 and SRU.
+ <ulink url="&url.zoom;">ZOOM</ulink> C API implementing
+ Z39.50, SRU and SOLR Web Service.
</para></listitem>
<listitem><para>
The &yaz; library offers a set of useful utilities
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"
- "http://www.oasis-open.org/docbook/xml/4.1/docbookx.dtd"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+ "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"
[
<!ENTITY % local SYSTEM "local.ent">
%local;
<refentryinfo>
<productname>YAZ</productname>
<productnumber>&version;</productnumber>
+ <info><orgname>Index Data</orgname></info>
</refentryinfo>
<refmeta>
<refentrytitle>yaz-asncomp</refentrytitle>
<manvolnum>1</manvolnum>
+ <refmiscinfo class="manual">Commands</refmiscinfo>
</refmeta>
<refnamediv>
<literal>sru</literal> <replaceable>method</replaceable> <replaceable>version</replaceable>
</term>
<listitem>
- <para>Selects SRU method and version.
+ <para>Selects Web Service method and version.
Must be one of <literal>POST</literal>,
- <literal>GET</literal>, <literal>SOAP</literal> (default). Version
- should be either 1.1 or 1.2. Other versions are allowed - for testing
- purposes (version negotiation with SRU server).
+ <literal>GET</literal>, <literal>SOAP</literal> (default)
+ or <literal>SOLR</literal>. Version
+ should be either 1.1 or 1.2 for SRU. Other versions are allowed - for testing
+ purposes (version negotiation with SRU server).
+ The version is currently not used for SOLR Web Services
</para>
</listitem>
</varlistentry>
See the
<ulink
url="http://www.loc.gov/z3950/agency/markup/04.html#3.2.2.1.6">
- Z39.50 standard
+ Z39.50 standard on set bounds
</ulink>
for more details.
</para>
See the
<ulink
url="http://www.loc.gov/z3950/agency/markup/04.html#3.2.2.1.6">
- Z39.50 standard
+ Z39.50 standard on set bounds
</ulink> for more details.
</para>
</listitem>
See the
<ulink
url="http://www.loc.gov/z3950/agency/markup/04.html#3.2.2.1.6">
- Z39.50 standard
+ Z39.50 standard on set bounds
</ulink>
for more details.
</para>
are registered. See
<ulink
url="http://www.loc.gov/z3950/agency/defns/oids.html#5">
- Z39.50 Standard
+ Z39.50 Record Syntax Identifiers
</ulink>
for more details. Commonly used records syntaxes include usmarc,
- sutrs, grs1 and xml.
+ sutrs and xml.
</para>
</listitem>
</varlistentry>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"
- "http://www.oasis-open.org/docbook/xml/4.1/docbookx.dtd"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+ "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"
[
<!ENTITY % local SYSTEM "local.ent">
%local;
<refentryinfo>
<productname>YAZ</productname>
<productnumber>&version;</productnumber>
+ <info><orgname>Index Data</orgname></info>
</refentryinfo>
<refmeta>
<refentrytitle>yaz-client</refentrytitle>
<manvolnum>1</manvolnum>
+ <refmiscinfo class="manual">Commands</refmiscinfo>
</refmeta>
<refnamediv>
<refsect1><title>DESCRIPTION</title>
<para>
- <command>yaz-client</command> is a Z39.50/SRU client (origin) with a
- simple command line interface that allows you to test behavior and
- performance of Z39.50 targets and SRU servers.
+ <command>yaz-client</command> is a
+ <ulink url="&url.z39.50;">Z39.50</ulink>/<ulink url="&url.sru;">SRU</ulink>
+ client (origin) with a simple command line interface that allows
+ you to test behavior and performance of Z39.50 targets and SRU servers.
+ </para>
+ <para>
+ From YAZ version 4.1.0 <command>yaz-client</command> may also operate as a
+ <ulink url="&url.solr;">SOLR</ulink> Web Service
+ client.
</para>
<para>
If the <replaceable>server-addr</replaceable> is specified, the client creates
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"
- "http://www.oasis-open.org/docbook/xml/4.1/docbookx.dtd"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+ "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"
[
<!ENTITY % local SYSTEM "local.ent">
%local;
<refentryinfo>
<productname>YAZ</productname>
<productnumber>&version;</productnumber>
+ <info><orgname>Index Data</orgname></info>
</refentryinfo>
<refmeta>
<refentrytitle>yaz-config</refentrytitle>
- <manvolnum>8</manvolnum>
+ <manvolnum>1</manvolnum>
+ <refmiscinfo class="manual">Commands</refmiscinfo>
</refmeta>
<refnamediv>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"
- "http://www.oasis-open.org/docbook/xml/4.1/docbookx.dtd"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+ "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"
[
<!ENTITY % local SYSTEM "local.ent">
%local;
<refentryinfo>
<productname>YAZ</productname>
<productnumber>&version;</productnumber>
+ <info><orgname>Index Data</orgname></info>
</refentryinfo>
<refmeta>
<refentrytitle>yaz-iconv</refentrytitle>
<manvolnum>1</manvolnum>
+ <refmiscinfo class="manual">Commands</refmiscinfo>
</refmeta>
<refnamediv>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"
- "http://www.oasis-open.org/docbook/xml/4.1/docbookx.dtd"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+ "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"
[
<!ENTITY % local SYSTEM "local.ent">
%local;
<refentryinfo>
<productname>YAZ</productname>
<productnumber>&version;</productnumber>
+ <info><orgname>Index Data</orgname></info>
</refentryinfo>
<refmeta>
<refentrytitle>yaz-icu</refentrytitle>
<manvolnum>1</manvolnum>
+ <refmiscinfo class="manual">Commands</refmiscinfo>
</refmeta>
<refnamediv>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"
- "http://www.oasis-open.org/docbook/xml/4.1/docbookx.dtd"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+ "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"
[
<!ENTITY % local SYSTEM "local.ent">
%local;
<refentryinfo>
<productname>YAZ</productname>
<productnumber>&version;</productnumber>
+ <info><orgname>Index Data</orgname></info>
</refentryinfo>
<refmeta>
<refentrytitle>yaz-illclient</refentrytitle>
<manvolnum>1</manvolnum>
+ <refmiscinfo class="manual">Commands</refmiscinfo>
</refmeta>
<refnamediv>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"
- "http://www.oasis-open.org/docbook/xml/4.1/docbookx.dtd"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+ "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"
[
<!ENTITY % local SYSTEM "local.ent">
%local;
<refentryinfo>
<productname>YAZ</productname>
<productnumber>&version;</productnumber>
+ <info><orgname>Index Data</orgname></info>
</refentryinfo>
<refmeta>
<refentrytitle>yaz-json-parse</refentrytitle>
<manvolnum>1</manvolnum>
+ <refmiscinfo class="manual">Commands</refmiscinfo>
</refmeta>
<refnamediv>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"
- "http://www.oasis-open.org/docbook/xml/4.1/docbookx.dtd"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+ "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"
[
<!ENTITY % local SYSTEM "local.ent">
%local;
<refentryinfo>
<productname>YAZ</productname>
<productnumber>&version;</productnumber>
+ <info><orgname>Index Data</orgname></info>
</refentryinfo>
<refmeta>
<refentrytitle>yaz-log</refentrytitle>
<manvolnum>7</manvolnum>
+ <refmiscinfo class="manual">Conventions and miscellaneous</refmiscinfo>
</refmeta>
<refnamediv>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"
- "http://www.oasis-open.org/docbook/xml/4.1/docbookx.dtd"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+ "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"
[
<!ENTITY % local SYSTEM "local.ent">
%local;
<refentryinfo>
<productname>YAZ</productname>
<productnumber>&version;</productnumber>
+ <info><orgname>Index Data</orgname></info>
</refentryinfo>
<refmeta>
<refentrytitle>yaz</refentrytitle>
<manvolnum>7</manvolnum>
+ <refmiscinfo class="manual">Conventions and miscellaneous</refmiscinfo>
</refmeta>
<refnamediv>
YAZ is a C/C++ programmer's toolkit supporting the development
of Z39.50v3 clients and servers. The YAZ toolkit offers
several different levels of access to the ISO23950/Z39.50, SRU
- and ILL protocols. The level that you need to use depends
- on your requirements, and the role (server of client) that you want
+ SOLR (client only) and ILL protocols. The level that you need to use depends
+ on your requirements, and the role (server or client) that you want
to implement.
</para>
</refsect1>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"
- "http://www.oasis-open.org/docbook/xml/4.1/docbookx.dtd"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+ "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"
[
<!ENTITY % local SYSTEM "local.ent">
%local;
<refentryinfo>
<productname>YAZ</productname>
<productnumber>&version;</productnumber>
+ <info><orgname>Index Data</orgname></info>
</refentryinfo>
+
<refmeta>
<refentrytitle>yaz-marcdump</refentrytitle>
<manvolnum>1</manvolnum>
+ <refmiscinfo class="manual">Commands</refmiscinfo>
</refmeta>
<refnamediv>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"
- "http://www.oasis-open.org/docbook/xml/4.1/docbookx.dtd"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+ "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"
[
<!ENTITY % local SYSTEM "local.ent">
%local;
<refentryinfo>
<productname>YAZ</productname>
<productnumber>&version;</productnumber>
+ <info><orgname>Index Data</orgname></info>
</refentryinfo>
<refmeta>
<refentrytitle>yaz-ztest</refentrytitle>
<manvolnum>8</manvolnum>
+ <refmiscinfo class="manual">System management commands</refmiscinfo>
</refmeta>
<refnamediv>
<refname>yaz-ztest</refname>
- <refpurpose>Z39.50 Test Server</refpurpose>
+ <refpurpose>Z39.50/SRU Test Server</refpurpose>
</refnamediv>
<refsynopsisdiv>
</refsynopsisdiv>
<refsect1><title>DESCRIPTION</title>
<para>
- <command>yaz-ztest</command> is a Z39.50 test server that uses
- the YAZ generic frontend server API.
- The server acts as a real Z39.50 server but does not use a database.
+ <command>yaz-ztest</command> is a Z39.50/SRU test server that uses
+ the YAZ generic frontend server (GFS) API.
+ The server acts as a real Z39.50/SRU server but does not use a database.
It returns a random hit count and returns a subset of a few built-in
records.
</para>
<?xml version="1.0" standalone="no"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1//EN"
- "http://www.oasis-open.org/docbook/xml/4.1/docbookx.dtd"
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
+ "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"
[
<!ENTITY % local SYSTEM "local.ent">
%local;
programming language or toolkit.
</para>
- <note>
- <para>
- A recent addition to &yaz; is SRU support. You can now make
- SRU ZOOM connections by specifying scheme <literal>http://</literal>
- for the hostname for a connection. The dialect of SRU used is
- specified by the value of the connection's <literal>sru</literal>
- option, which may be SRU over HTTP GET (<literal>get</literal>),
- SRU over HTTP POST (<literal>post</literal>) or SRW (SRU over
- SOAP) (<literal>soap</literal>). Using the facility for embedding
- options in target strings, a connection can be forced to use SRU
- rather the SRW (the default) by prefixing the target string with
- <literal>sru=get,</literal>, like this:
+ <para>
+ From YAZ version 2.1.12, <ulink url="&url.sru;">SRU</ulink> is supported.
+ You can make SRU ZOOM connections by specifying scheme
+ <literal>http://</literal> for the hostname for a connection.
+ The dialect of SRU used is specified by the value of the
+ connection's <literal>sru</literal> option, which may be SRU over
+ HTTP GET (<literal>get</literal>),
+ SRU over HTTP POST (<literal>post</literal>), (SRU over
+ SOAP) (<literal>soap</literal>) or <literal>SOLR</literal>
+ (<ulink url="&url.solr;">SOLR</ulink> Web Service).
+ Using the facility for embedding options in target strings, a
+ connection can be forced to use SRU rather the SRW (the default) by
+ prefixing the target string with <literal>sru=get,</literal>, like this:
<literal>sru=get,http://sru.miketaylor.org.uk:80/sru.pl</literal>
- </para>
- </note>
-
+ </para>
+ <para>
+ <ulink url="&url.solr;">SOLR</ulink> protocol support was added to YAZ in version 4.1.0,
+ as a dialect of a SRU protocol, since both are HTTP based protocols.
+ </para>
<para>
The lack of a simple Z39.50 client API for &yaz; has become more
and more apparent over time. So when the first &zoom; specification
<para>
You can prefix the host with a scheme followed by colon. The
default scheme is <literal>tcp</literal> (Z39.50 protocol).
- The scheme <literal>http</literal> selects SRU over HTTP.
+ The scheme <literal>http</literal> selects SRU/get over HTTP by default,
+ but can overridded to use SRU/post, SRW and the SOLR protocol.
</para>
<para>
You can prefix the scheme-qualified host-string with one or more
discover whether the server claims to support the specified
operations.
</entry><entry>none</entry></row>
- <row><entry>
- sru</entry><entry>
- SRU transport type. Must be either <literal>soap</literal>,
- <literal>get</literal> or <literal>post</literal>.
- </entry><entry>soap</entry></row>
+ <row>
+ <entry>sru</entry><entry>
+ SRU/SOLR transport type. Must be either <literal>soap</literal>,
+ <literal>get</literal>, <literal>post</literal>, or
+ <literal>solr</literal>.
+ </entry><entry>soap</entry></row>
<row><entry>
sru_version</entry><entry>
SRU/SRW version. Should be <literal>1.1</literal>, or
</entry><entry>1.2</entry></row>
<row><entry>
facets</entry><entry>
- A FacetList is comma-separated list of facet, which is defined as <literal>AttributeList</literal>
- and a optional FacetTerm (a Term and a frequency). On request the terms is missing.
- On response the the list contains the terms that the target could collect.
+ A FacetList is comma-separated list of facet, which is defined
+ as <literal>AttributeList</literal> and a optional FacetTerm
+ (a Term and a frequency). On request the terms is missing.
+ On response the the list contains the terms that the target
+ could collect.
</entry><entry>none</entry></row>
</tbody>
</tgroup>
</para>
</sect2>
<sect2 id="zoom.sru.init.behavior">
- <title>SRU Protocol behavior</title>
+ <title>SRU/SOLR Protocol behavior</title>
<para>
- The SRU protocol doesn't feature an Inititialize Request, so
+ The HTTP based protocols (SRU, SRW, SOLR) doesn't feature an Inititialize Request, so
the connection phase merely establishes a TCP/IP connection
with the SOAP service.
</para>
<para>Most of the ZOOM connection options do not
- affect SRU and they are ignored. However, future versions
+ affect SRU/SOLR and they are ignored. However, future versions
of &yaz; might honor <literal>implementationName</literal> and
put that as part of User-Agent header for HTTP requests.
</para>
SRU SearchRetrieveRequest.
</para>
<para>
- Unfortunately, SRU does not define a database setting. Hence,
+ SOLR queries has to be done in SOLR query format.
+ </para>
+ <para>
+ Unfortunately, SRU or SOLR does not define a database setting. Hence,
<literal>databaseName</literal> is unsupported and ignored.
However, the path part in host parameter for functions
<function>ZOOM_connecton_new</function> and
</varlistentry>
<varlistentry><term><literal>xml</literal></term>
<listitem><para>The record is returned in XML if possible.
- SRU and Z39.50 records with transfer syntax XML are
+ SRU, SOLR and Z39.50 records with transfer syntax XML are
returned verbatim. MARC records are returned in
<ulink url="&url.marcxml;">
MARCXML
</para>
</sect2>
<sect2 id="zoom.sru.record.behavior">
- <title>SRU Protocol behavior</title>
+ <title>SRU/SOLR Protocol behavior</title>
<para>
- The ZOOM driver for SRU treats records returned by a SRU server
+ The ZOOM driver for SRU/SOLR treats records returned by a SRU/SOLR server
as if they where Z39.50 records with transfer syntax XML and
no element set name or database name.
</para>
</sect2>
</sect1>
+ <sect1 id="zoom.facets"><title>Facets</title>
+ <para>
+ Facets operations is not part of the official ZOOM specification, but is an Index Data extension
+ for YAZ-based Z39.50 targets or <ulink url="&url.solr;">SOLR</ulink> targets.
+ In case the target can and is requested to return facets, using a result set the ZOOM client
+ can request one or all facet fields. Using a facet field the client can request the term count and
+ then interate over the terms.
+ </para>
+ <synopsis>
+ ZOOM_facet_field *ZOOM_resultset_facets(ZOOM_resultset r);
+ const char ** ZOOM_resultset_facets_names(ZOOM_resultset r);
+ ZOOM_facet_field ZOOM_resultset_get_facet_field(ZOOM_resultset r, const char *facet_name);
+ ZOOM_facet_field ZOOM_resultset_get_facet_field_by_index(ZOOM_resultset r, int pos);
+ size_t ZOOM_resultset_facets_size(ZOOM_resultset r);
+
+ const char *ZOOM_facet_field_name(ZOOM_facet_field facet_field);
+ size_t ZOOM_facet_field_term_count(ZOOM_facet_field facet_field);
+ const char *ZOOM_facet_field_get_term(ZOOM_facet_field facet_field, size_t idx, int *freq);
+ </synopsis>
+ <para>
+ References to temporary structures are returned by all functions. They are only valid as long the Result set is valid.
+ <function>ZOOM_resultset_get_facet_field</function> or
+ <function>ZOOM_resultset_get_facet_field_by_index</function>.
+ <function>ZOOM_resultset_facets</function>.
+ <function>ZOOM_resultset_facets_names</function>.
+ <function>ZOOM_facet_field_name</function>.
+ <function>ZOOM_facet_field_get_term</function>.
+ </para>
+ <para id="zoom.resultset.get_facet_field">
+ A single Facet field is returned by function
+ <function>ZOOM_resultset_get_facet_field</function> or <function>ZOOM_resultset_get_facet_field_by_index</function> that takes a
+ result set and facet name or positive index respectively. First facet has position zero.
+ If no facet could be obtained (invalid name or index out of bounds) <literal>NULL</literal> is returned.
+ </para>
+ <para id="zoom.resultset.facets">
+ An array of facets field can be returned by <function>ZOOM_resultset_facets</function>. The length of the array is
+ given by <function>ZOOM_resultset_facets_size</function>. The array is zero-based and last entry will be at
+ <function>ZOOM_resultset_facets_size(result_set)</function>-1.
+ </para>
+ <para id="zoom.resultset.facets_names">
+ It is possible to interate over facets by name, by calling <function>ZOOM_resultset_facets_names</function>.
+ This will return an const array of char * where each string can be used as parameter for
+ <function>ZOOM_resultset_get_facet_field</function>.
+ </para>
+ <para>
+ Function <function>ZOOM_facet_field_name</function> gets the request facet name from a returned facet field.
+ </para>
+ <para>
+ Function <function>ZOOM_facet_field_get_term</function> returns the idx'th term and term count for a facet field.
+ Idx must between 0 and <function>ZOOM_facet_field_term_count</function>-1, otherwise the returned reference will be
+ <literal>NULL</literal>. On a valid idx, the value of the freq reference will be the term count.
+ The *freq parameter must be valid pointer to integer.
+ </para>
+ </sect1>
<sect1 id="zoom.scan"><title>Scan</title>
<para>
This section describes an interface for Scan. Scan is not an
</para>
<para>
- The Scan interface is supported for both Z39.50 and SRU.
+ The Scan interface is supported for both Z39.50, SRU (and SOLR?).
</para>
<synopsis>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"
- "http://www.oasis-open.org/docbook/xml/4.1/docbookx.dtd"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+ "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"
[
<!ENTITY % local SYSTEM "local.ent">
%local;
<refentryinfo>
<productname>YAZ</productname>
<productnumber>&version;</productnumber>
+ <info><orgname>Index Data</orgname></info>
</refentryinfo>
<refmeta>
<refentrytitle>zoomsh</refentrytitle>
<manvolnum>1</manvolnum>
+ <refmiscinfo class="manual">Commands</refmiscinfo>
</refmeta>
<refnamediv>
int background; /**< auto daemon */
char cert_fname[128]; /**< SSL certificate fname */
char xml_config[128]; /**< XML config filename */
+ int keepalive; /**< keep alive if HTTP 1.1 (default: 1) */
} statserv_options_block;
YAZ_EXPORT int statserv_main(
\param attributes RPN attributes
\returns pattern value or NULL if not found
*/
+YAZ_EXPORT
const char *cql_lookup_reverse(cql_transform_t ct,
const char *category,
Z_AttributeList *attributes);
\param attributes RPN attributes
\returns pattern value or NULL if not found
*/
+YAZ_EXPORT
const char *solr_lookup_reverse(solr_transform_t ct,
const char *category,
Z_AttributeList *attributes);
RECSYN, Z3950_PREFIX.5.110.2, "wav"
RECSYN, Z3950_PREFIX.5.111, "SQL-RS"
RECSYN, Z3950_PREFIX.5.1000.81.2, "SOIF"
+RECSYN, Z3950_PREFIX.5.1000.81.3, "JSON"
RECSYN, Z3950_PREFIX.5.109.10, "XML"
RECSYN, Z3950_PREFIX.5.109.10, "text-XML"
RECSYN, Z3950_PREFIX.5.109.11, "application-XML"
int ch = 0;
if (arg_no >= argc)
- return -2;
+ return YAZ_OPTIONS_EOF;
if (arg_off == 0)
{
while (argv[arg_no][0] == '\0')
{
arg_no++;
if (arg_no >= argc)
- return -2;
+ return YAZ_OPTIONS_EOF;
}
if (argv[arg_no][0] != '-' || argv[arg_no][1] == '\0')
{
*arg = argv[arg_no]+arg_off-1;
arg_no = arg_no + 1;
arg_off = 0;
- return -1;
+ return YAZ_OPTIONS_ERROR;
}
/*
* Local variables:
keepalive = 1;
hres->version = "1.1";
}
- if (!keepalive)
+ if (!keepalive || !assoc->last_control->keepalive)
{
z_HTTP_header_add(o, &hres->headers, "Connection", "close");
assoc->state = ASSOC_DEAD;
#include "sru-p.h"
+#define SOLR_MAX_PARAMETERS 100
+
#if YAZ_HAVE_XML2
#include <libxml/parser.h>
#include <libxml/tree.h>
-#define SOLR_MAX_PARAMETERS 100
-
const char *xml_node_attribute_value_get(xmlNodePtr ptr, const char *node_name, const char *attribute_name) {
struct _xmlAttr *attr;
elements = (Z_AttributeElement**) odr_malloc (o, attributes->num_attributes * sizeof(*elements));
elements[0] = (Z_AttributeElement*)odr_malloc(o,sizeof(**elements));
elements[0]->attributeType = odr_malloc(o, sizeof(*elements[0]->attributeType));
- *elements[0]->attributeType = 1;
+ *elements[0]->attributeType = 1;
elements[0]->attributeSet = odr_nullval();
elements[0]->which = Z_AttributeValue_complex;
elements[0]->value.complex = (Z_ComplexAttribute *) odr_malloc(o, sizeof(Z_ComplexAttribute));
#if YAZ_POSIX_THREADS
#include <pthread.h>
-#elif YAZ_GNU_THREADS
-#include <pth.h>
#endif
#include <fcntl.h>
"", /* PID fname */
0, /* background daemon */
"", /* SSL certificate filename */
- "" /* XML config filename */
+ "", /* XML config filename */
+ 1 /* keepalive */
};
static int max_sessions = 0;
pthread_t child_thread;
pthread_create(&child_thread, 0, new_session, new_line);
pthread_detach(child_thread);
-#elif YAZ_GNU_THREADS
- pth_attr_t attr;
- pth_t child_thread;
-
- attr = pth_attr_new();
- pth_attr_set(attr, PTH_ATTR_JOINABLE, FALSE);
- pth_attr_set(attr, PTH_ATTR_STACK_SIZE, 32*1024);
- pth_attr_set(attr, PTH_ATTR_NAME, "session");
- yaz_log(YLOG_DEBUG, "pth_spawn begin");
- child_thread = pth_spawn(attr, new_session, new_line);
- yaz_log(YLOG_DEBUG, "pth_spawn finish");
- pth_attr_destroy(attr);
#else
new_session(new_line);
#endif
get_logbits(1);
- while ((ret = options("1a:iszSTl:v:u:c:w:t:k:d:A:p:DC:f:m:r:",
+ while ((ret = options("1a:iszSTl:v:u:c:w:t:k:Kd:A:p:DC:f:m:r:",
argv, argc, &arg)) != -2)
{
switch (ret)
#if YAZ_POSIX_THREADS
control_block.dynamic = 0;
control_block.threads = 1;
-#elif YAZ_GNU_THREADS
- control_block.dynamic = 0;
- control_block.threads = 1;
#else
fprintf(stderr, "%s: Threaded mode not available.\n", me);
return 1;
}
control_block.maxrecordsize = r * 1024;
break;
+ case 'K':
+ control_block.keepalive = 0;
+ break;
case 'i':
control_block.inetd = 1;
break;
if (!strcmp("@", host))
{
hints.ai_flags = AI_PASSIVE;
+ hints.ai_family = AF_INET;
+ error = getaddrinfo(0, port, &hints, &res);
+ }
+ else if (!strcmp("@6", host))
+ {
+ hints.ai_flags = AI_PASSIVE;
+ hints.ai_family = AF_INET6;
error = getaddrinfo(0, port, &hints, &res);
}
else
if (sp->ai && h->state == CS_ST_UNBND)
{
int s = -1;
- /* try to make IPV6 socket first */
for (ai = sp->ai; ai; ai = ai->ai_next)
{
- if (ai->ai_family == AF_INET6)
- {
- s = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
- if (s != -1)
- break;
- }
- }
- if (s == -1)
- {
- /* no IPV6 could be made.. Try them all */
- for (ai = sp->ai; ai; ai = ai->ai_next)
- {
- s = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
- if (s != -1)
- break;
- }
+ s = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
+ if (s != -1)
+ break;
}
if (s == -1)
return 0;
task->running = 0;
task->which = which;
- clear_error(c);
return task;
}
syntax = c->tasks->u.search.syntax;
elementSetName = c->tasks->u.search.elementSetName;
- if (!c->tasks->u.search.recv_search_fired)
- {
+ /* Required not for reporting client hit count multiple times into session */
+ if (!c->tasks->u.search.recv_search_fired) {
+ yaz_log(YLOG_DEBUG, "posting ZOOM_EVENT_RECV_SEARCH");
event = ZOOM_Event_create(ZOOM_EVENT_RECV_SEARCH);
ZOOM_connection_put_event(c, event);
c->tasks->u.search.recv_search_fired = 1;
int ZOOM_handle_sru(ZOOM_connection c, Z_HTTP_Response *hres,
zoom_ret *cret)
{
+#if YAZ_HAVE_XML2
int ret = 0;
const char *addinfo = 0;
ret = -1;
}
return ret;
+#else
+ return -1;
+#endif
}
/*
if (facet_list) {
Z_OtherInformation **oi;
yaz_oi_APDU(apdu, &oi);
- if (facet_list) {
- yaz_oi_set_facetlist(oi, c->odr_out, facet_list);
- }
+ yaz_oi_set_facetlist(oi, c->odr_out, facet_list);
}
+ else
+ yaz_log(YLOG_WARN, "Unable to parse facets: %s", facets);
}
assert(r);
static void print_icu_transliterators(const struct config_t *p_config)
{
- int32_t buf_cap = 128;
- char buf[128];
- int32_t i;
- int32_t count = utrans_countAvailableIDs();
-
+ UErrorCode status;
+ UEnumeration *en = utrans_openIDs(&status);
+ int32_t count = uenum_count(en, &status);
+ const char *name;
+ int32_t length;
+
if (p_config->xmloutput)
fprintf(config.outfile, "<transliterators count=\"%d\">\n", count);
else
fprintf(config.outfile, "Available ICU transliterators: %d\n", count);
-
- for(i = 0; i <count; i++)
+
+ while ((name = uenum_next(en, &length, &status)))
{
- utrans_getAvailableID(i, buf, buf_cap);
if (p_config->xmloutput)
- fprintf(config.outfile, "<transliterator id=\"%s\"/>\n", buf);
+ fprintf(config.outfile, "<transliterator id=\"%s\"/>\n", name);
else
- fprintf(config.outfile, " %s", buf);
+ fprintf(config.outfile, " %s", name);
}
-
+ uenum_close(en);
if (p_config->xmloutput)
{
fprintf(config.outfile, "</transliterators>\n");
#else /* YAZ_HAVE_ICU */
printf("ICU not available on your system.\n"
- "Please install libicu36-dev and icu-doc or similar, "
+ "Please install libicu-dev and icu-doc or similar, "
"re-configure and re-compile\n");
#include <config.h>
#endif
+#include <stdlib.h>
#include <yaz/options.h>
#include <yaz/record_conv.h>
case 'V':
break;
case 0:
+#if YAZ_HAVE_XML2
if (!p)
{
xmlDocPtr doc = xmlParseFile(arg);
fclose(f);
}
break;
+#else
+ fprintf(stderr, "%s: YAZ not compiled with Libxml2 support\n",
+ prog);
+ usage();
+ break;
+#endif
default:
usage();
}
- }
+ }
+#if YAZ_HAVE_XML2
yaz_record_conv_destroy(p);
+#endif
if (no_errors)
exit(1);
exit(0);
NSIS="c:\program files\nsis\makensis.exe"
HHC="c:\program files\html help workshop\hhc.exe"
-dist: yaz.nsi
+dist: yaz.win32.nsi yaz.nsi distclean
+ nmake DEBUG=0
+ $(NSIS) yaz.win32.nsi
+
+dist64: yaz.win64.nsi yaz.nsi distclean
+ nmake DEBUG=0 HAVE_LIBXSLT=0 HAVE_LIBXML2=0 HAVE_ICONV=0 HAVE_ICU=0
+ $(NSIS) yaz.win64.nsi
+
+distclean:
nmake DEBUG=1 clean
nmake DEBUG=0 clean
- nmake DEBUG=0
- $(NSIS) yaz.nsi
-nsis: all yaz.nsi
- $(NSIS) yaz.nsi
+nsis: all yaz32.nsi
+ $(NSIS) yaz.win32.nsi
+
+nsis64: yaz.win64.nsi
+ $(NSIS) yaz.win64.nsi
nsishelp:
$(NSIS)
$(OBJDIR)\zgdu.obj \
$(OBJDIR)\soap.obj \
$(OBJDIR)\solr.obj \
+ $(OBJDIR)\solrtransform.obj \
$(OBJDIR)\srw.obj \
$(OBJDIR)\srwutil.obj \
$(OBJDIR)\zoom-c.obj \
$(OBJDIR)\zoom-z3950.obj \
$(OBJDIR)\zoom-sru.obj \
$(OBJDIR)\zoom-query.obj \
- $(OBJDIR)\record-render.obj \
+ $(OBJDIR)\record_render.obj \
$(OBJDIR)\facet.obj \
$(OBJDIR)\zoom-opt.obj \
$(OBJDIR)\zoom-socket.obj \
$(OBJDIR)\cqlutil.obj \
$(OBJDIR)\cqlstrer.obj \
$(OBJDIR)\rpn2cql.obj \
+ $(OBJDIR)\rpn2solr.obj \
$(OBJDIR)\xcqlutil.obj \
$(OBJDIR)\elementset.obj \
$(OBJDIR)\timing.obj \
;!define VS_RUNTIME_MANIFEST "c:\Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT\Microsoft.VC80.CRT.manifest"
; 4: VS 2008
-!define VS_RUNTIME_DLL "c:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT\msvc*90.dll"
-!define VS_RUNTIME_MANIFEST "c:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT\Microsoft.VC90.CRT.manifest"
+;!define VS_RUNTIME_DLL "c:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT\msvc*90.dll"
+;!define VS_RUNTIME_MANIFEST "c:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT\Microsoft.VC90.CRT.manifest"
!include "MUI.nsh"
SetOutPath $INSTDIR\bin
File "${VS_RUNTIME_DLL}"
File "${VS_RUNTIME_MANIFEST}"
- File ..\bin\iconv.dll
- File ..\bin\zlib1.dll
- File ..\bin\libxml2.dll
- File ..\bin\libxslt.dll
- File ..\bin\icu*.dll
- File ..\bin\yaz*.dll
+ File ..\bin\*.dll
File ..\bin\*.exe
SetOutPath $SMPROGRAMS\YAZ
CreateShortCut "$SMPROGRAMS\YAZ\YAZ Client.lnk" \
Section "YAZ Documentation" YAZ_Documentation
SectionIn 1 2
SetOutPath $INSTDIR\doc
- File /r ..\doc\*.css
- File /r ..\doc\*.ent
- File /r ..\doc\*.html
+ File /nonfatal /r ..\doc\*.css
+ File /nonfatal /r ..\doc\*.ent
+ File /nonfatal /r ..\doc\*.html
File /r ..\doc\*.xml
File /r ..\doc\*.png
- File /r ..\doc\*.xsl
+ File /nonfatal /r ..\doc\*.xsl
SetOutPath $SMPROGRAMS\YAZ
CreateShortCut "$SMPROGRAMS\YAZ\HTML Documentation.lnk" \
"$INSTDIR\doc\index.html"
--- /dev/null
+; YAZ for Windows 32 bit, VS 2008
+!define VS_RUNTIME_DLL "c:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT\msvc*90.dll"
+!define VS_RUNTIME_MANIFEST "c:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT\Microsoft.VC90.CRT.manifest"
+
+!include yaz.nsi
+
--- /dev/null
+; YAZ for Windows 64 bit, VS 2008
+!define VS_RUNTIME_DLL "c:\Program Files\Microsoft Visual Studio 9.0\VC\redist\amd64\Microsoft.VC90.CRT\msvc*90.dll"
+!define VS_RUNTIME_MANIFEST "c:\Program Files\Microsoft Visual Studio 9.0\VC\redist\amd64\Microsoft.VC90.CRT\Microsoft.VC90.CRT.manifest"
+
+!include yaz.nsi
+
# This file is part of the YAZ toolkit.
# Copyright (C) 1995-2008 Index Data
-yazprefix=@prefix@
-yaz_echo_cflags=no
-yaz_echo_libs=no
-yaz_echo_help=no
-yaz_echo_source=yes
-yaz_echo_lalibs=no
-yaz_echo_comp=no
-yaz_src_root=@YAZ_SRC_ROOT@
-yaz_build_root=@YAZ_BUILD_ROOT@
+prefix=@prefix@
+echo_cflags=no
+echo_libs=no
+echo_help=no
+echo_source=yes
+echo_lalibs=no
+echo_comp=no
+src_root=@abs_top_srcdir@
+build_root=@abs_top_builddir@
ICU_LIBS="@ICU_LIBS@"
ICU_CPPFLAGS="@ICU_CPPFLAGS@"
SSL_LIBS="@SSL_LIBS@"
LIBS="@LIBS@"
-YAZVERSION=@VERSION@
+VERSION=@VERSION@
VERSION_SHA1=@VERSION_SHA1@
usage()
case $1 in
--prefix=*)
- yazprefix=$optarg
+ prefix=$optarg
;;
--prefix)
- echo $yazprefix
+ echo $prefix
exit 0
;;
-V)
- echo "$YAZVERSION $VERSION_SHA1"
+ echo "$VERSION $VERSION_SHA1"
exit 0
;;
--version)
- echo $YAZVERSION
+ echo $VERSION
exit 0
;;
--cflags)
- yaz_echo_cflags=yes
+ echo_cflags=yes
;;
--libs)
- yaz_echo_libs=yes
+ echo_libs=yes
;;
--lalibs)
- yaz_echo_lalibs=yes
+ echo_lalibs=yes
;;
--comp)
- yaz_echo_comp=yes
+ echo_comp=yes
;;
threads)
lib_thread=yes
lib_static=yes
;;
-*)
- yaz_echo_help=yes
+ echo_help=yes
;;
esac
shift
YAZINC="@YAZ_CONFIG_CFLAGS@"
-if test "$yaz_echo_source" = "yes"; then
- YAZBIN=${yaz_build_root}/bin
+if test "$echo_source" = "yes"; then
+ YAZBIN=${build_root}/bin
if test "$lib_static" = "yes"; then
if test "$lib_ssl" != "yes"; then
LIBS="${SSL_LIBS} $LIBS"
fi
- YAZLIB="${yaz_build_root}/src/.libs/libyaz.a"
+ YAZLIB="${build_root}/src/.libs/libyaz.a"
if test "$lib_server" = "yes"; then
- YAZLIB="${yaz_build_root}/src/.libs/libyaz_server.a $YAZLIB"
+ YAZLIB="${build_root}/src/.libs/libyaz_server.a $YAZLIB"
fi
if test "$lib_icu" = "yes"; then
- YAZLIB="${yaz_build_root}/src/.libs/libyaz_icu.a $YAZLIB"
+ YAZLIB="${build_root}/src/.libs/libyaz_icu.a $YAZLIB"
fi
else
- YAZLIB="-L${yaz_build_root}/src/.libs $YAZLIB"
+ YAZLIB="-L${build_root}/src/.libs $YAZLIB"
fi
YAZLIB="$YAZLIB $LIBS"
- YAZLALIB="${yaz_build_root}/src/libyaz.la"
+ YAZLALIB="${build_root}/src/libyaz.la"
if test "$lib_server" = "yes"; then
- YAZLALIB="${yaz_build_root}/src/libyaz_server.la $YAZLALIB"
+ YAZLALIB="${build_root}/src/libyaz_server.la $YAZLALIB"
fi
if test "$lib_icu" = "yes"; then
- YAZLALIB="${yaz_build_root}/src/libyaz_icu.la $YAZLALIB"
+ YAZLALIB="${build_root}/src/libyaz_icu.la $YAZLALIB"
fi
YAZLALIB="$YAZLALIB $LIBS"
- YAZINC="-I${yaz_src_root}/include $YAZINC"
- YAZCOMP=${yaz_src_root}/util/yaz-asncomp
+ YAZINC="-I${src_root}/include $YAZINC"
+ YAZCOMP=${src_root}/util/yaz-asncomp
else
- YAZBIN=${yazprefix}/bin
- YAZCOMP=${yazprefix}/bin/yaz-asncomp
+ YAZBIN=${prefix}/bin
+ YAZCOMP=${prefix}/bin/yaz-asncomp
- if test "$yazprefix" != "/usr"; then
- YAZLIB="-L$yazprefix/lib $YAZLIB"
+ if test "$prefix" != "/usr"; then
+ YAZLIB="-L$prefix/lib $YAZLIB"
fi
YAZLIB="$YAZLIB $LIBS"
YAZLALIB=$YAZLIB
- if test "$yazprefix" != "/usr"; then
- YAZINC="-I$yazprefix/include $YAZINC"
+ if test "$prefix" != "/usr"; then
+ YAZINC="-I$prefix/include $YAZINC"
fi
fi
YAZLALIB="$YAZLALIB $ICU_LIBS"
fi
-if test "$yaz_echo_help" = "yes"; then
+if test "$echo_help" = "yes"; then
usage 1 1>&2
fi
-if test "$yaz_echo_cflags" = "yes"; then
+if test "$echo_cflags" = "yes"; then
echo $YAZINC
fi
-if test "$yaz_echo_libs" = "yes"; then
+if test "$echo_libs" = "yes"; then
echo $YAZLIB
fi
-if test "$yaz_echo_lalibs" = "yes"; then
+if test "$echo_lalibs" = "yes"; then
echo $YAZLALIB
fi
-if test "$yaz_echo_comp" = "yes"; then
+if test "$echo_comp" = "yes"; then
echo $YAZCOMP
fi
# Local Variables:
Name: yaz
Version: @VERSION@
Release: 1
-Requires: libxslt gnutls readline libyaz4 = %{version}
+Requires: libxslt, gnutls, readline, libyaz4 = %{version}
License: BSD
Group: Applications/Internet
Vendor: Index Data ApS <info@indexdata.dk>
# Fedora requires tcp_wrappers-devel .
%define TCPWRAPPER tcp_wrappers
%endif
-BuildRequires: pkgconfig libxml2-devel libxslt-devel gnutls-devel readline-devel libicu-devel %{TCPWRAPPER}
+BuildRequires: pkgconfig, libxml2-devel, libxslt-devel, gnutls-devel, readline-devel, libicu-devel, %{TCPWRAPPER}
Packager: Adam Dickmeiss <adam@indexdata.dk>
URL: http://www.indexdata.com/yaz
%package -n libyaz4
Summary: Z39.50 Library
Group: Libraries
-Requires: libxslt gnutls libicu
+Requires: libxslt, gnutls, libicu
%description -n libyaz4
YAZ is a library for the ANSI/NISO Z39.50 protocol for Information
%package -n libyaz4-devel
Summary: Z39.50 Library - development package
Group: Development/Libraries
-Requires: libyaz4 = %{version} libxml2-devel libxslt-devel libicu-devel
+Requires: libyaz4 = %{version}, libxml2-devel, libxslt-devel, libicu-devel
Conflicts: libyaz-devel
%description -n libyaz4-devel
%package -n yaz-illclient
Summary: ILL client
Group: Applications/Communication
-Requires: readline libyaz4 = %{version}
+Requires: readline, libyaz4 = %{version}
%description -n yaz-illclient
yaz-illclient: an ISO ILL client.
%{_datadir}/aclocal/yaz.m4
%{_mandir}/man1/yaz-asncomp.*
%{_mandir}/man7/yaz.*
-%{_mandir}/man8/yaz-config.*
+%{_mandir}/man?/yaz-config.*
%{_datadir}/doc/yaz
%{_datadir}/yaz
#define MAX_CON 100
+static void process_events(ZOOM_connection *c)
+{
+ int i;
+
+ printf("process_events\n");
+ while ((i = ZOOM_event(MAX_CON, c)) != 0)
+ {
+ int peek = ZOOM_connection_peek_event(c[i-1]);
+ int event = ZOOM_connection_last_event(c[i-1]);
+ printf ("no = %d peek = %d event = %d %s\n", i-1,
+ peek,
+ event,
+ ZOOM_get_event_str(event));
+ }
+}
+
static int next_token(const char **cpp, const char **t_start)
{
int len = 0;
for (i = 0; i < MAX_CON; i++)
ZOOM_resultset_records(r[i], 0, start, count);
- while (ZOOM_event(MAX_CON, c))
- ;
+ process_events(c);
for (i = 0; i < MAX_CON; i++)
{
if (render_str)
type = wrbuf_cstr(render_str);
- /*
- for (i = 0; i < MAX_CON; i++) {
- int num_facets = ZOOM_resultset_facet_size(r[i]);
- ZOOM_resultset_records(r[i], 0, start, count);
- }
- */
- while (ZOOM_event(MAX_CON, c))
- ;
+ process_events(c);
for (i = 0; i < MAX_CON; i++)
{
p[i] = 0;
}
- while (ZOOM_event(MAX_CON, c))
- ;
+ process_events(c);
for (i = 0; i<MAX_CON; i++)
{
}
ZOOM_query_destroy(s);
- while (ZOOM_event(MAX_CON, c))
- ;
+ process_events(c);
for (i = 0; i<MAX_CON; i++)
{
}
ZOOM_query_destroy(query);
- while (ZOOM_event(MAX_CON, c))
- ;
+ process_events(c);
+
for (i = 0; i<MAX_CON; i++)
{
int error;
if (r[i])
ZOOM_resultset_sort(r[i], "yaz", sort_spec);
}
- while (ZOOM_event(MAX_CON, c))
- ;
+ process_events(c);
}
static void cmd_help(ZOOM_connection *c, ZOOM_resultset *r,
while ((i = ZOOM_event (no, z)))
{
int peek = ZOOM_connection_peek_event(z[i-1]);
- printf ("no = %d peek = %d event = %d\n", i-1,
+ int event = ZOOM_connection_last_event(z[i-1]);
+ printf ("no = %d peek = %d event = %d %s\n", i-1,
peek,
- ZOOM_connection_last_event(z[i-1]));
+ event,
+ ZOOM_get_event_str(event));
}
/* no more to be done. Inspect results */
Sleep( (DWORD) (d * 1000));
#else
struct timeval tv;
- tv.tv_sec = floor(d);
- tv.tv_usec = (d - floor(d)) * 1000000;
+ tv.tv_sec = d;
+ tv.tv_usec = (d - (long) d) * 1000000;
select(0, 0, 0, 0, &tv);
#endif
}