Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/pazpar2
authorDennis Schafroth <dennis@indexdata.com>
Thu, 22 Jul 2010 07:40:06 +0000 (09:40 +0200)
committerDennis Schafroth <dennis@indexdata.com>
Thu, 22 Jul 2010 07:40:06 +0000 (09:40 +0200)
18 files changed:
IDMETA
Makefile.am
NEWS
configure.ac
debian/changelog
debian/pazpar2.init
debian/rules
debian/server.xml [deleted file]
etc/cf.xsl
etc/default.xml
etc/server.xml [new file with mode: 0644]
etc/tmarc.xsl
js/pz2.js
pazpar2.spec.in [new file with mode: 0644]
perf/bash/par.sh
src/Makefile.am
src/client.c
src/pazpar2.rpm.init [new file with mode: 0755]

diff --git a/IDMETA b/IDMETA
index 9ed38ff..3459caa 100644 (file)
--- a/IDMETA
+++ b/IDMETA
@@ -1,2 +1,2 @@
-DEBIAN_DIST="squeeze etch lenny"
-UBUNTU_DIST="lucid karmic jaunty intrepid hardy"
+DEBIAN_DIST="squeeze lenny"
+UBUNTU_DIST="lucid karmic"
index f0b4d96..a485e2b 100644 (file)
@@ -4,7 +4,8 @@ ACLOCAL_AMFLAGS = -I m4
 
 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:
diff --git a/NEWS b/NEWS
index b292ba7..83b8fb0 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,8 @@
+--- 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
index a02bb8e..b6a5cba 100644 (file)
@@ -4,7 +4,7 @@
 
 # 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)
 
@@ -51,6 +51,7 @@ AC_DEFINE_UNQUOTED([PAZPAR2_VERSION_SHA1], ["$sha"], [Git SHA1])
 AC_CONFIG_FILES([
        Doxyfile
        Makefile
+       pazpar2.spec
        src/Makefile
        test/Makefile
        js/Makefile
index d6f6719..dadd19d 100644 (file)
@@ -1,3 +1,9 @@
+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.
index 73f0b05..495b930 100644 (file)
@@ -97,7 +97,10 @@ case "$1" in
        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)
@@ -105,7 +108,10 @@ case "$1" in
        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)
index 2a9b4ac..e5d60be 100755 (executable)
@@ -78,7 +78,7 @@ binary-arch: build install
        # 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/
diff --git a/debian/server.xml b/debian/server.xml
deleted file mode 100644 (file)
index eb6c1b0..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<?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:
--->
-
index ac8d0dd..4b8aebe 100644 (file)
@@ -45,6 +45,9 @@
     <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">
index a3c5c7f..1e91636 100644 (file)
@@ -1,7 +1,7 @@
 <?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">
diff --git a/etc/server.xml b/etc/server.xml
new file mode 100644 (file)
index 0000000..eb6c1b0
--- /dev/null
@@ -0,0 +1,43 @@
+<?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:
+-->
+
index f652de1..a94131d 100644 (file)
 
       <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">
index 7948ea0..3665c4e 100644 (file)
--- a/js/pz2.js
+++ b/js/pz2.js
@@ -637,6 +637,13 @@ pz2.prototype =
                                 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++;
diff --git a/pazpar2.spec.in b/pazpar2.spec.in
new file mode 100644 (file)
index 0000000..b064130
--- /dev/null
@@ -0,0 +1,112 @@
+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
index fb4e945..881e171 100755 (executable)
@@ -14,7 +14,7 @@ while test $r -lt $ROUNDS; do
        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
index 54292be..9004ce9 100644 (file)
@@ -2,6 +2,8 @@
 
 sbin_PROGRAMS = pazpar2
 
+EXTRA_DIST = pazpar2.rpm.init
+
 check_PROGRAMS = \
       test_sel_thread \
       test_normalize
index d145dd8..b3500de 100644 (file)
@@ -139,14 +139,12 @@ void client_set_state(struct client *cl, enum client_state st)
     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);
diff --git a/src/pazpar2.rpm.init b/src/pazpar2.rpm.init
new file mode 100755 (executable)
index 0000000..da5d642
--- /dev/null
@@ -0,0 +1,82 @@
+#!/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