-DEBIAN_DIST="squeeze etch lenny"
-UBUNTU_DIST="lucid karmic jaunty intrepid hardy"
+DEBIAN_DIST="squeeze lenny"
+UBUNTU_DIST="lucid karmic"
SUBDIRS = src test js doc
-EXTRA_DIST = README NEWS LICENSE buildconf.sh Doxyfile.in m4/yaz.m4 \
+EXTRA_DIST = $(PACKAGE).spec README NEWS LICENSE \
+ buildconf.sh Doxyfile.in m4/yaz.m4 \
win/makefile win/version.nsi win/version.nsi.in win/license.txt
dist-hook:
+--- 1.4.3 2010/07/02
+
+New RPM packages: pazpar2, pazpar2-js, pazpar2-doc. These have been
+tested on CentOS 5.5 only.
+
--- 1.4.2 2010/06/18
Fix problem with result sets being removed from a client session
# Autoconf and automake setup
AC_PREREQ(2.60)
-AC_INIT([pazpar2],[1.4.2],[pazpar2-help@indexdata.dk])
+AC_INIT([pazpar2],[1.4.3],[pazpar2-help@indexdata.dk])
AC_CONFIG_HEADERS(src/config.h)
AC_CONFIG_FILES([
Doxyfile
Makefile
+ pazpar2.spec
src/Makefile
test/Makefile
js/Makefile
+pazpar2 (1.4.3-1indexdata) unstable; urgency=low
+
+ * Upstream.
+
+ -- Adam Dickmeiss <adam@indexdata.dk> Thu, 01 Jul 2010 14:04:10 +0200
+
pazpar2 (1.4.2-1indexdata) unstable; urgency=low
* Upstream.
do_start
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
- 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+ 2) [ "$VERBOSE" = no ] && \
+ log_daemon_msg "Starting $DESC" "$NAME"
+ log_end_msg 1
+ ;;
esac
;;
stop)
do_stop
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
- 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+ 2) [ "$VERBOSE" = no ] && \
+ log_daemon_msg "Stopping $DESC" "$NAME"
+ log_end_msg 1
+ ;;
esac
;;
#reload|force-reload)
# pazpar2-doc package
mv $(CURDIR)/debian/pazpar2/usr/share/doc/pazpar2/* $(CURDIR)/debian/pazpar2-doc/usr/share/doc/pazpar2-doc
# pazpar2 package
- cp $(CURDIR)/debian/server.xml $(CURDIR)/debian/pazpar2/etc/pazpar2/server.xml
+ cp $(CURDIR)/etc/server.xml $(CURDIR)/debian/pazpar2/etc/pazpar2/server.xml
cp $(CURDIR)/etc/default.xml $(CURDIR)/debian/pazpar2/etc/pazpar2/services-available/
cp $(CURDIR)/etc/services/*.xml $(CURDIR)/debian/pazpar2/etc/pazpar2/services-available
cp $(CURDIR)/etc/settings/*.xml $(CURDIR)/debian/pazpar2/etc/pazpar2/settings/
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<pazpar2 xmlns="http://www.indexdata.com/pazpar2/1.0">
-
- <threads number="0"/> <!-- non-zero to enable threaded operation -->
- <server>
- <listen port="8004"/>
-
- <!-- character set mapping.. This can be overriden in services -->
- <relevance>
- <icu_chain id="relevance" locale="en">
- <transform rule="[:Control:] Any-Remove"/>
- <tokenize rule="l"/>
- <transform rule="[[:WhiteSpace:][:Punctuation:]] Remove"/>
- <casemap rule="l"/>
- </icu_chain>
- </relevance>
-
- <sort>
- <icu_chain id="sort" locale="en">
- <transform rule="[[:Control:][:WhiteSpace:][:Punctuation:]] Remove"/>
- <casemap rule="l"/>
- </icu_chain>
- </sort>
-
- <mergekey>
- <icu_chain id="mergekey" locale="en">
- <tokenize rule="l"/>
- <transform rule="[[:Control:][:WhiteSpace:][:Punctuation:]] Remove"/>
- <casemap rule="l"/>
- </icu_chain>
- </mergekey>
-
- <include src="services-enabled/*.xml"/>
-
- </server>
-
-</pazpar2>
-<!-- Keep this comment at the end of the file
- Local variables:
- mode: nxml
- End:
--->
-
<pz:metadata type="title">
<xsl:value-of select="."/>
</pz:metadata>
+ <pz:metadata type="title-complete">
+ <xsl:value-of select="." />
+ </pz:metadata>
</xsl:template>
<xsl:template match="author">
<?xml version="1.0" encoding="UTF-8"?>
<service xmlns="http://www.indexdata.com/pazpar2/1.0">
<timeout session="60" z3950_operation="30" z3950_session="180"/>
- <settings src="settings/edu.xml"/>
+ <settings src="settings/sru-test.xml"/>
<relevance>
<icu_chain id="relevance" locale="en">
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<pazpar2 xmlns="http://www.indexdata.com/pazpar2/1.0">
+
+ <threads number="0"/> <!-- non-zero to enable threaded operation -->
+ <server>
+ <listen port="8004"/>
+
+ <!-- character set mapping.. This can be overriden in services -->
+ <relevance>
+ <icu_chain id="relevance" locale="en">
+ <transform rule="[:Control:] Any-Remove"/>
+ <tokenize rule="l"/>
+ <transform rule="[[:WhiteSpace:][:Punctuation:]] Remove"/>
+ <casemap rule="l"/>
+ </icu_chain>
+ </relevance>
+
+ <sort>
+ <icu_chain id="sort" locale="en">
+ <transform rule="[[:Control:][:WhiteSpace:][:Punctuation:]] Remove"/>
+ <casemap rule="l"/>
+ </icu_chain>
+ </sort>
+
+ <mergekey>
+ <icu_chain id="mergekey" locale="en">
+ <tokenize rule="l"/>
+ <transform rule="[[:Control:][:WhiteSpace:][:Punctuation:]] Remove"/>
+ <casemap rule="l"/>
+ </icu_chain>
+ </mergekey>
+
+ <include src="services-enabled/*.xml"/>
+
+ </server>
+
+</pazpar2>
+<!-- Keep this comment at the end of the file
+ Local variables:
+ mode: nxml
+ End:
+-->
+
<xsl:for-each select="tmarc:d260">
<pz:metadata type="date">
- <xsl:value-of select="tmarc:sc" />
+ <xsl:value-of select="translate(tmarc:sc, 'cp[].', '')" />
</pz:metadata>
</xsl:for-each>
<pz:metadata type="title-number-section">
<xsl:value-of select="tmarc:sn" />
</pz:metadata>
+ <pz:metadata type="title-complete">
+ <xsl:value-of select="tmarc:sa" />
+ <xsl:if test="tmarc:sb" ><xsl:value-of select="concat(' ', tmarc:sb)" /></xsl:if>
+ </pz:metadata>
</xsl:for-each>
<xsl:for-each select="tmarc:d250">
</xsl:for-each>
<xsl:for-each select="tmarc:d926">
- <pz:metadata type="holding">
- <xsl:for-each select="tmarc:s">
- <xsl:if test="position() > 1">
- <xsl:text> </xsl:text>
- </xsl:if>
- <xsl:value-of select="." />
- </xsl:for-each>
- </pz:metadata>
+ <pz:metadata type="locallocation">
+ <xsl:choose><xsl:when test="tmarc:sa">
+ <xsl:value-of select="tmarc:sa"/>
+ </xsl:when><xsl:otherwise>
+ <xsl:text>PAZPAR2_NULL_VALUE</xsl:text>
+ </xsl:otherwise></xsl:choose>
+ </pz:metadata>
+ <pz:metadata type="callnumber">
+ <xsl:choose><xsl:when test="tmarc:sc">
+ <xsl:value-of select="tmarc:sc"/>
+ </xsl:when><xsl:otherwise>
+ <xsl:text>PAZPAR2_NULL_VALUE</xsl:text>
+ </xsl:otherwise></xsl:choose>
+ </pz:metadata>
+ <pz:metadata type="available">
+ <xsl:choose><xsl:when test="tmarc:se">
+ <xsl:value-of select="tmarc:se"/>
+ </xsl:when><xsl:otherwise>
+ <xsl:text>PAZPAR2_NULL_VALUE</xsl:text>
+ </xsl:otherwise></xsl:choose>
+ </pz:metadata>
</xsl:for-each>
<xsl:for-each select="tmarc:d948">
bytarget[i][nodeName] = nodeText;
}
}
+ if (bytarget[i]["state"]=="Client_Disconnected") {
+ bytarget[i]["hits"] = "Error";
+ } else if (bytarget[i]["state"]=="Client_Error") {
+ bytarget[i]["hits"] = "Error";
+ } else if (bytarget[i]["state"]=="Client_Working") {
+ bytarget[i]["hits"] = "...";
+ }
}
context.bytargetCounter++;
--- /dev/null
+Summary: Metasearcher
+Name: pazpar2
+Version: @VERSION@
+Release: 1
+License: GPL
+Group: Applications/Internet
+Vendor: Index Data ApS <info@indexdata.dk>
+Source: pazpar2-%{version}.tar.gz
+BuildRoot: %{_tmppath}/%{name}-%{version}-root
+BuildRequires: libyaz4-devel
+Packager: Adam Dickmeiss <adam@indexdata.dk>
+URL: http://www.indexdata.com/pazpar2
+
+%description
+Pazpar2 is a high-performance, user interface-independent, data
+model-independent metasearching middleware featuring merging, relevance
+ranking, record sorting, and faceted results.
+
+Summary: pazpar2 daemon
+Requires: libyaz4
+
+%package -n pazpar2-js
+Summary: pazpar2 JS
+Group: Data
+Requires: pazpar2
+
+%post
+/sbin/chkconfig --add pazpar2
+/sbin/service pazpar2 start > /dev/null 2>&1
+
+%preun
+if [ $1 = 0 ]; then
+ /sbin/service pazpar2 stop > /dev/null 2>&1
+ /sbin/chkconfig --del pazpar2
+fi
+
+%description -n pazpar2-js
+This package includes the Java Script library pz2.js. It also adds an
+Alias for Apache2 so that this library and other demo portals are
+available.
+
+%post -n pazpar2-js
+if [ -d /etc/httpd/conf.d ]; then
+ ln -sf /etc/pazpar2/ap2pazpar2-js.cfg /etc/httpd/conf.d/pazpar2-js.conf
+ /sbin/service httpd condrestart
+fi
+%preun -n pazpar2-js
+if [ -L /etc/httpd/conf.d/pazpar2-js.conf ]; then
+ rm /etc/httpd/conf.d/pazpar2-js.conf
+ /sbin/service httpd condrestart
+fi
+%package -n pazpar2-doc
+Summary: pazpar2 documentation
+Group: Data
+
+%description -n pazpar2-doc
+This package includes documentation for Pazpar2 - the metasearcher.
+
+%prep
+%setup
+
+%build
+
+CFLAGS="$RPM_OPT_FLAGS" \
+ ./configure --prefix=%{_prefix} --libdir=%{_libdir} --mandir=%{_mandir} \
+ --with-yaz=/usr/bin
+make CFLAGS="$RPM_OPT_FLAGS"
+
+%install
+rm -fr ${RPM_BUILD_ROOT}
+make prefix=${RPM_BUILD_ROOT}/%{_prefix} mandir=${RPM_BUILD_ROOT}/%{_mandir} \
+ libdir=${RPM_BUILD_ROOT}/%{_libdir} install
+mkdir -p ${RPM_BUILD_ROOT}/etc/pazpar2
+mkdir -p ${RPM_BUILD_ROOT}/etc/pazpar2/settings
+mkdir -p ${RPM_BUILD_ROOT}/etc/pazpar2/services-enabled
+mkdir -p ${RPM_BUILD_ROOT}/etc/pazpar2/services-available
+cp etc/server.xml ${RPM_BUILD_ROOT}/etc/pazpar2/
+cp etc/default.xml ${RPM_BUILD_ROOT}/etc/pazpar2/services-available/
+cp etc/services/*.xml ${RPM_BUILD_ROOT}/etc/pazpar2/services-available/
+cp etc/settings/*.xml ${RPM_BUILD_ROOT}/etc/pazpar2/settings/
+cp etc/*.xsl ${RPM_BUILD_ROOT}/etc/pazpar2/
+mkdir -p ${RPM_BUILD_ROOT}/etc/rc.d/init.d
+install -m755 src/pazpar2.rpm.init ${RPM_BUILD_ROOT}/etc/rc.d/init.d/pazpar2
+echo "Alias /pazpar2 /usr/share/pazpar2" >${RPM_BUILD_ROOT}/etc/pazpar2/ap2pazpar2-js.cfg
+%clean
+rm -fr ${RPM_BUILD_ROOT}
+
+%files
+%defattr(-,root,root)
+%doc README LICENSE NEWS
+%{_sbindir}/pazpar2
+%dir %{_sysconfdir}/pazpar2
+%dir %{_sysconfdir}/pazpar2/settings
+%dir %{_sysconfdir}/pazpar2/services-enabled
+%dir %{_sysconfdir}/pazpar2/services-available
+%config %{_sysconfdir}/pazpar2/*.xml
+%config %{_sysconfdir}/pazpar2/*.xsl
+%config %{_sysconfdir}/pazpar2/settings/*.xml
+%config %{_sysconfdir}/pazpar2/services-available/*.xml
+%config %{_sysconfdir}/rc.d/init.d/pazpar2
+%{_mandir}/man5/pazpar2*
+%{_mandir}/man7/pazpar2*
+%{_mandir}/man8/pazpar2*
+
+%files -n pazpar2-js
+%defattr(-,root,root)
+%{_datadir}/pazpar2/js/pz2.js
+%config %{_sysconfdir}/pazpar2/ap2pazpar2-js.cfg
+
+%files -n pazpar2-doc
+%defattr(-,root,root)
+%{_defaultdocdir}/pazpar2
echo "$r"
let i=0
while test $i -lt $NUMBER; do
- ./client.sh $r.$i $PORT $SERVICE $SETTINGS >$r.$i.log 2>&1 &
+ ./client.sh --outfile=$r.$i --prefix=http://localhost:${PORT}/search.pz2 --service=$SERVICE >$r.$i.log 2>&1 &
sleep $DELAY
let i=$i+1
done
sbin_PROGRAMS = pazpar2
+EXTRA_DIST = pazpar2.rpm.init
+
check_PROGRAMS = \
test_sel_thread \
test_normalize
cl->state = st;
/* no need to check for all client being non-active if this one
already is. Note that session_active_clients also LOCKS session */
-#if 0
if (!client_is_active(cl) && cl->session)
{
int no_active = session_active_clients(cl->session);
if (no_active == 0)
session_alert_watch(cl->session, SESSION_WATCH_SHOW);
}
-#endif
}
static void client_show_raw_error(struct client *cl, const char *addinfo);
--- /dev/null
+#!/bin/bash
+#
+# pazpar2 Startup script for Pazpar2
+#
+# chkconfig: - 85 15
+# description: Pazpar2 Metasearcher
+# processname: pazpar2
+# config: /etc/pazpar2/server.xml
+# config: /etc/sysconfig/pazpar2
+# pidfile: /var/run/pazpar2.pid
+
+# Source function library.
+OPTIONS="-l /var/log/pazpar2.log -f /etc/pazpar2/server.xml"
+. /etc/rc.d/init.d/functions
+
+if [ -f /etc/sysconfig/pazpar2 ]; then
+ . /etc/sysconfig/pazpar2
+fi
+
+# Path to the apachectl script, server binary, and short-form for messages.
+DAEMON=${DAEMON-/usr/sbin/pazpar2}
+prog=pazpar2
+pidfile=${PIDFILE-/var/run/pazpar2.pid}
+lockfile=${LOCKFILE-/var/lock/subsys/pazpar2}
+RETVAL=0
+
+start() {
+ echo -n $"Starting $prog: "
+ daemon --pidfile=${pidfile} $DAEMON $OPTIONS -D -p ${pidfile}
+ RETVAL=$?
+ echo
+ [ $RETVAL = 0 ] && touch ${lockfile}
+ return $RETVAL
+}
+
+stop() {
+ echo -n $"Stopping $prog: "
+ killproc -p ${pidfile} -d 10 $DAEMON
+ RETVAL=$?
+ echo
+ [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
+}
+reload() {
+ stop
+ start
+}
+
+# See how we were called.
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ status)
+ status -p ${pidfile} $DAEMON
+ RETVAL=$?
+ ;;
+ restart)
+ stop
+ start
+ ;;
+ condrestart)
+ if [ -f ${pidfile} ] ; then
+ stop
+ start
+ fi
+ ;;
+ reload)
+ reload
+ ;;
+ configtest)
+ $DAEMON $OPTIONS -t
+ RETVAL=$?
+ ;;
+ *)
+ echo $"Usage: $prog {start|stop|restart|help|configtest}"
+ exit 1
+esac
+
+exit $RETVAL