[OpenSRF-GIT] OpenSRF branch rel_2_5 updated. 318ec1ad8f15184be46de3ef6d564e43d0139b79

Evergreen Git git at git.evergreen-ils.org
Wed Dec 7 17:13:06 EST 2016


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "OpenSRF".

The branch, rel_2_5 has been updated
       via  318ec1ad8f15184be46de3ef6d564e43d0139b79 (commit)
       via  fb50a71d11bb2865722a1625bad075ca7eaf2ef3 (commit)
       via  fbfde6f6ca1fe8fed8b86c93f315a1110fb74512 (commit)
      from  b1d19c8b9ff0bee77a3c98e793bf8efa67693a4e (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 318ec1ad8f15184be46de3ef6d564e43d0139b79
Author: Galen Charlton <gmc at esilibrary.com>
Date:   Wed Dec 7 17:12:49 2016 -0500

    changelog for 2.5.0-alpha
    
    Signed-off-by: Galen Charlton <gmc at esilibrary.com>

diff --git a/ChangeLog b/ChangeLog
index f4eaa05..f8daab3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,1324 +1,723 @@
 ChangeLog
 =========
 
-OpenSRF 2.1.2
--------------
+OpenSRF 2.5.0-alpha
+-------------------
 
-commit b0dd15b964f5856059d0fd40981f8985ef8ea56f
-Author: Dan Scott <dscott at laurentian.ca>
-Date:   Sun Nov 18 07:41:46 2012 -0500
-
-    Bump version numbers for 2.1.2
-    
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
-
-2	2	src/perl/lib/OpenSRF.pm
-1	1	version.m4
-
-commit 07ab6dd958a905cb439f9cded9ae2828b7888a2f
-Author: Dan Scott <dscott at laurentian.ca>
-Date:   Fri Nov 16 10:36:28 2012 -0500
-
-    Whitespace in OpenSRF/System.pm
-    
-    Spaces not tabs.
-    
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
-
-21	21	src/perl/lib/OpenSRF/System.pm
-
-commit 5efbb97cbeb87d37b4f64bcef8babeab5e5c54b1
-Author: Jason Stephenson <jstephenson at mvlc.org>
-Date:   Thu Nov 15 12:20:11 2012 -0500
-
-    Move setting of OpenSRF::Application::shared_conf to load_bootstrap_config.
-    
-    shared_conf was not available and broke clients that were not in a
-    service, such as the Evergreen CStoreEditor.
-    
-    Signed-off-by: Jason Stephenson <jstephenson at mvlc.org>
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
-
-8	9	src/perl/lib/OpenSRF/System.pm
-
-commit 2cb5313d0d5bf3e2b912ebbcc653cedcac22336d
-Author: Dan Scott <dan at coffeecode.net>
-Date:   Tue Oct 30 23:39:25 2012 -0400
+commit fb50a71d11bb2865722a1625bad075ca7eaf2ef3
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed Dec 7 16:55:23 2016 -0500
 
-    Bump release numbers, create 2.1.1 change log
-    
-    Signed-off-by: Dan Scott <dan at coffeecode.net>
+    update version numbers for 2.5.0-alpha
     
-    Conflicts:
-    	ChangeLog
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-1243	1	ChangeLog
-2	2	src/perl/lib/OpenSRF.pm
+7	7	README
+1	1	src/perl/lib/OpenSRF.pm
+1	1	src/python/setup.py
 1	1	version.m4
 
-commit 42e369b2efcbbc31447c43b5fbaa3999ad88cf30
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Mon May 21 16:42:12 2012 -0400
-
-    ChopChop is dead, long live ChopChop.
-    
-    It was never fully baked, nor was it secure, nor does it compile cleanly
-    with -Wall, nor does it provide any useful examples for working with
-    opensrf, etc.  Time to clear out.  So long, chopchop.
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
-
-0	6	Makefile.am
-0	21	configure.ac
-0	13	examples/opensrf_core.xml.example
-0	4	src/Makefile.am
-0	23	src/jserver/Makefile.am
-0	1082	src/jserver/osrf_chat.c
-0	45	src/jserver/osrf_chat.h
-0	92	src/jserver/osrf_chat_main.c
- delete mode 100644 src/jserver/Makefile.am
- delete mode 100644 src/jserver/osrf_chat.c
- delete mode 100644 src/jserver/osrf_chat.h
- delete mode 100644 src/jserver/osrf_chat_main.c
-
-OpenSRF 2.1.1
--------------
-
-commit e93c7c932b144aac2633fe5d058f298a29909f02
-Author: Dan Scott <dan at coffeecode.net>
-Date:   Tue Oct 30 23:34:04 2012 -0400
-
-    Release notes for 2.1.1: input log redaction
-    
-    Signed-off-by: Dan Scott <dan at coffeecode.net>
-
-12	3	doc/RELEASE_NOTES.txt
-
-commit fd367d0a978cd85d2726a1ea2bd0412abf57fb12
-Author: Dan Scott <dan at coffeecode.net>
-Date:   Tue Oct 30 23:27:34 2012 -0400
-
-    Purge the wildly out-of-date Roadmap document
-    
-    Signed-off-by: Dan Scott <dan at coffeecode.net>
-
-0	51	doc/Roadmap.txt
- delete mode 100644 doc/Roadmap.txt
-
-commit 97a520bce382c8806ad1772f98e1e9169a2297b9
-Author: Dan Scott <dscott at laurentian.ca>
-Date:   Tue Nov 6 12:32:48 2012 -0500
-
-    Bump libopensrf version-info revision and age
-    
-    The log redaction functionality changed the source files (thus 'age'
-    gets bumped) and is backwards-compatible (thus 'revision' gets bumped)
-    but maintains the same interface (thus 'current' stays the same).
-    
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
-
-1	1	src/libopensrf/Makefile.am
-
-commit b81a8c2ada734fe8c47e758c681e2bb952f29c39
-Author: Dan Wells <dbw2 at calvin.edu>
-Date:   Wed Oct 31 10:21:14 2012 -0400
-
-    Protect against empty/invalid log_protect sections
-    
-    Connectivity would fail if the log_protect section of opensrf_core.xml
-    was empty, or contained only comments, as it does in the default
-    example. Add a simple guard against this potential problem.  This fix
-    will also protect against cases where the 'log_protect' section
-    contains text rather than separate configuration elements.
-    
-    Credit to Dan Scott for finding the bug and working out how to fix it.
-    
-    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
-    Signed-off-by: Dan Scott <dan at coffeecode.net>
-
-6	4	src/perl/lib/OpenSRF/Application.pm
-
-commit a2a286ef7fbf70e695ab23289fe9f131a9037922
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Wed Oct 17 15:57:14 2012 -0400
-
-    Consolidate duplicate osrfMethodVerifyContext handler
-    
-    Log redaction was not occuring in some cases because the code was using
-    the OSRF_METHOD_VERIFY_CONTEXT macro instead of the similarly named
-    function which does the same thing.  This change points the macro at the
-    function so that all code uses the same underlying code.
-    
-    Note this change turns on CALL param logging unconditionally, whereas
-    users of the macro would previously have been able to avoid CALL logging
-    via the OSRF_LOG_PARAMS variable.  In practice, little code uses the
-    macro and all code enables OSRF_LOG_PARAMS.  If we need to add this
-    control back, it can be added directly to osrfMethodVerifyContext().
-    For now, it's one less env variable we need to define.
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Dan Scott <dan at coffeecode.net>
-
-2	36	include/opensrf/osrf_application.h
-
-commit 157ad5d6553b29585afd4b2180db91e2d13b5961
-Author: Dan Wells <dbw2 at calvin.edu>
-Date:   Fri Oct 12 09:45:35 2012 -0400
-
-    Log redaction for sensitive input values, Perl side
-    
-    This commit attempts to do the same as the C log redaction fix,
-    but now at the Perl level.  The Perl configuration code was a
-    little more crufty than the C side, so an additional feature was
-    added to Config.pm to support the new 'shared' section.  At some
-    point we should consider a ground-up rewrite of Config.pm, as the
-    code seems to suffer some from its INI file roots.
-    
-    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
-    Signed-off-by: Dan Scott <dan at coffeecode.net>
-
-3	3	examples/opensrf_core.xml.example
-21	1	src/perl/lib/OpenSRF/Application.pm
-9	0	src/perl/lib/OpenSRF/System.pm
-48	12	src/perl/lib/OpenSRF/Utils/Config.pm
-
-commit fe9617eda262cc3a3890d068e938ef0ffb99d07a
-Author: Dan Wells <dbw2 at calvin.edu>
-Date:   Wed Oct 10 17:28:07 2012 -0400
-
-    Log redaction for sensitive input values, C side
-    
-    Some service/methods deal with sensitive information (passwords,
-    financial, etc.).  All input values (e.g. gateway method params)
-    are currently logged in the activity log regardless of your log
-    level.  This commit will allow you to redact the params of any
-    method which matches a configurable set of left-anchored string
-    values.
-    
-    This commit adds the initial config, and covers redaction of method
-    parameters sent through the gateway, the translator, and more general
-    OpenSRF C applications.
-    
-    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
-    Signed-off-by: Dan Scott <dan at coffeecode.net>
-
-12	0	examples/opensrf_core.xml.example
-1	0	include/opensrf/osrf_application.h
-2	0	include/opensrf/osrf_system.h
-25	10	src/gateway/osrf_http_translator.c
-22	7	src/gateway/osrf_json_gateway.c
-23	4	src/libopensrf/osrf_application.c
-6	0	src/libopensrf/osrf_system.c
-
-commit cd24bb1c94c95027310f63909b692e4dbb05507f
-Author: Dan Scott <dscott at laurentian.ca>
-Date:   Mon Oct 22 11:50:21 2012 -0400
-
-    Use apt-get instead of aptitude on Debian / Ubuntu
-    
-    Reports from the field state that aptitude is not installed by default on
-    Ubuntu any longer; thus go with the sure thing.
-    
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
-
-1	1	README
-1	1	src/extras/Makefile.install
-
-commit 20a115a421c56b56968accc27b63da7656a70ee8
-Author: Dan Scott <dscott at laurentian.ca>
-Date:   Mon Oct 22 11:53:24 2012 -0400
-
-    Remove the reference to Evergreen in the README
-    
-    Stephen Wills reported problems installing Evergreen because of missing
-    dependencies, and reading the OpenSRF README shows that it refers to the
-    Evergreen prerequisite installer in a confusing way that might lead to
-    users using only the Evergreen Makefile.install, rather than using the
-    OpenSRF Makefile.install.
-    
-    In addition, Fedora 16 is going to be out of support soon, and Fedora 17
-    and 18 are well-tested targets now.
-    
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
-
-2	2	README
-
-commit 83dd58abfca26418f8bdaecb73dbd2c177cc0093
-Author: Jason Stephenson <jstephenson at mvlc.org>
-Date:   Tue Nov 6 09:16:18 2012 -0500
+commit fbfde6f6ca1fe8fed8b86c93f315a1110fb74512
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed Dec 7 16:52:08 2016 -0500
 
-    Fix installation on Ubuntu Precise.
-    
-    Remove libreadline5-dev and replace with libreadline-dev for Ubuntu
-    and Debian.  This installs libreadline6, but everything still works
-    since there's nothing version specific in our use of libreadline.
+    release notes for 2.5-alpha
     
-    Signed-off-by: Jason Stephenson <jstephenson at mvlc.org>
-    Signed-off-by: Dan Scott <dan at coffeecode.net>
-
-2	3	src/extras/Makefile.install
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-OpenSRF 2.1.0
--------------
+136	0	doc/RELEASE_NOTES.txt
+ create mode 100644 doc/RELEASE_NOTES.txt
 
-commit 79694c390e0350a199be409ceadb19945ddf2b5c
-Author: Dan Scott <dan at coffeecode.net>
-Date:   Wed May 30 23:12:32 2012 -0400
+commit b1d19c8b9ff0bee77a3c98e793bf8efa67693a4e
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed Dec 7 13:34:15 2016 -0500
 
-    No, Ubuntu Hardy is not well-tested for 2.1.0
+    LP#1648188: example HAProxy configuration
     
-    One more reference to Ubuntu Hardy that we can remove from the
-    README/INSTALL.
+    Add an example configuration for using HAProxy.
     
-    Signed-off-by: Dan Scott <dan at coffeecode.net>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-0	1	README
+53	1	README
+25	0	examples/haproxy/osrf-ws-http-proxy
+ create mode 100644 examples/haproxy/osrf-ws-http-proxy
 
-commit 885a4d87cd06f31071ff9b2f728fd7aa1c83d7be
-Author: Dan Scott <dan at coffeecode.net>
-Date:   Wed May 30 23:11:14 2012 -0400
+commit 93da6fb07c8b613011028f577b55fa8ba940f1ee
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed Dec 7 12:54:05 2016 -0500
 
-    Generate ChangeLog for 2.1.0 release
+    LP#1638651: add instructions for using NGINX
     
-    Signed-off-by: Dan Scott <dan at coffeecode.net>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-821	59	ChangeLog
+58	0	README
 
-commit 3eb7c54a734369a7bffc4a3c30bef2e65573be52
-Author: Dan Scott <dan at coffeecode.net>
-Date:   Sun May 27 22:52:23 2012 -0400
+commit ededc269eacb9e69e30074bba2cff35a3148e62e
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Mon Oct 31 15:56:32 2016 -0400
 
-    2.1.0 release notes
+    LP#1638651: example Nginx websockets/http(s) proxy config
     
-    A summary of some of the highlights of the new release, for
-    functionality that has been added and deleted. Does not address bug
-    fixes such as the much more robust Perl child handling; perhaps
-    we should focus on those as well?
+    Example using Nginx to proxy all websocket, http, and https Apache
+    traffic.
     
-    Signed-off-by: Dan Scott <dan at coffeecode.net>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-89	0	doc/RELEASE_NOTES.txt
- create mode 100644 doc/RELEASE_NOTES.txt
+56	0	examples/nginx/osrf-ws-http-proxy
+ create mode 100644 examples/nginx/osrf-ws-http-proxy
 
-commit cdd0816c624ff0843ee5ab201346521ae91f474a
-Author: Dan Scott <dan at coffeecode.net>
-Date:   Wed May 30 22:33:17 2012 -0400
+commit a3b2a15f27709815155eb9dbb8026343000753d5
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed Dec 7 11:58:35 2016 -0500
 
-    Bump version numbers to help with library compatibility
+    LP#1382038: clarify one step of installing websockets support
     
-    By bumping the OpenSRF version numbers for Perl libs, Python libraries,
-    and the libtool versioning for the libopensrf library, projects that
-    build on OpenSRF will be able to flag the minimum required version and
-    bail out early if an older version of OpenSRF has been installed.
+    Specify directory to be in before copying the Apache websockets
+    configuration file.
     
-    Signed-off-by: Dan Scott <dan at coffeecode.net>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-2	2	src/libopensrf/Makefile.am
-1	1	src/perl/lib/OpenSRF.pm
-1	1	src/python/setup.py
-1	1	version.m4
+4	1	README
 
-commit ee2c79929aa63ff8d6749da7d10c15ab967d9fd5
-Author: Dan Scott <dscott at laurentian.ca>
-Date:   Tue May 22 16:45:33 2012 -0400
+commit a1fe6e1c1ccb7b3efab386a7f34c0555d07bd7e7
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed Dec 7 11:53:49 2016 -0500
 
-    Add "tar" to base prereqs to appease autotools
-    
-    On a minimal install of Fedora 17, I was running into the perplexing
-    error message whilst running 'autoreconf -i':
-    
-    libtoolize: can not copy `/usr/share/libtool/config/ltmain.sh' to `./'
+    LP#1382038: adjustments to download instructions
     
-    This was confusing because a manual copy would, in fact, copy the file
-    just fine.
+    - Use "OSRFVERSION" in the master branch rather than
+      a specific version number; this is meant to be changed
+      during the release process.
+    - Update references to the OpenSRF downloads index
+      page.
     
-    http://lists.gnu.org/archive/html/libtool/2009-07/msg00030.html finally
-    lead to enlightenment: autotools uses "tar" to copy files, not "cp".
-    Thus, to avoid similar head-scratching install problems in the future,
-    add "tar" to the base prerequisites for building OpenSRF (both to the
-    DEBs list and the RPMs list).
-    
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-3	1	src/extras/Makefile.install
+4	4	README
 
-commit 788a396a2b380c5950c09368f85e8d4a79ec2ca8
-Author: Dan Scott <dan at coffeecode.net>
-Date:   Tue May 22 02:26:04 2012 -0400
+commit cd06277c3972437e676f51744749009c0d7eeb60
+Author: Remington Steed <rjs7 at calvin.edu>
+Date:   Mon Nov 21 10:58:33 2016 -0500
 
-    Update OS support in README / Makefile.install
-    
-    Kick Debian Lenny, Ubuntu Hardy, and RHEL 5 / CentOS 5 to the curb.
-    
-    Also change the name of the README to the more generic & instructive
-    "Installing OpenSRF" rather than "README for OpenSRF #.#.#".
-    
-    Signed-off-by: Dan Scott <dan at coffeecode.net>
+    LP#1382038: Add instructions for implied download/unpack step
     
-    Conflicts:
-    
-    	README
+    Occasionally, new users have complained that the installation
+    instructions making too many assumptions about what a user knows. This
+    commit explicitly instructs users in downloading the source tarball,
+    unpacking it, and changing the working directory so they will be ready
+    for the next instructions.
     
-    Signed-off-by: Dan Scott <dan at coffeecode.net>
+    Signed-off-by: Remington Steed <rjs7 at calvin.edu>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-3	9	README
-3	243	src/extras/Makefile.install
+24	0	README
 
-commit 3dd57f268b8b5d39f85139e4c4e5246bd9e2cda5
-Author: Thomas Berezansky <tsbere at mvlc.org>
-Date:   Wed May 23 10:13:41 2012 -0400
+commit 5aa8a398e01e2642fd4b08c93fe9c719039dbedf
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Thu Nov 3 18:08:54 2016 -0400
 
-    Nagios Example Plugin for monitoring services
+    LP#1612771: fix chunking for atomic C methods
     
-    Does not check that all drones in a brick are fully up, just that the
-    entire brick will respond to each service, even if only one drone happens
-    to be running the listener properly (and said listener is responding).
+    This patch also refactors the code that actually does the
+    splitting and sending of chunked responses into a new
+    public function, osrfSendChunkedResult().
     
-    Signed-off-by: Thomas Berezansky <tsbere at mvlc.org>
-    Signed-off-by: Dan Scott <dan at coffeecode.net>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+    Signed-off-by: Mike Rylander <miker at esilibrary.com>
 
-219	0	examples/nagios/check_osrf_services
- create mode 100755 examples/nagios/check_osrf_services
+4	0	include/opensrf/osrf_app_session.h
+96	10	src/libopensrf/osrf_app_session.c
+2	58	src/libopensrf/osrf_application.c
 
-commit e7431d6fa114c35d3dc5b430fbb4bdae99edaa88
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Mon Apr 2 14:55:56 2012 -0400
+commit 168b4cafe766ec976e075ec2ea496c00a27dc7d0
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Tue Nov 1 17:22:48 2016 -0400
 
-    Detect and repair multipart/mixed message delivery errors
-    
-    For unknown reasons, the Content-Type header will occasionally be
-    included in the XHR.responseText for multipart/mixed messages.  When
-    this happens, strip the header and newlines from the message body and
-    re-parse.
+    LP#1631522: add release notes for ->dispatch
     
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Dan Scott <dan at coffeecode.net>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-33	1	src/javascript/opensrf.js
+12	0	doc/Dispatch-Mode-for-Subrequests.txt
+ create mode 100644 doc/Dispatch-Mode-for-Subrequests.txt
 
-commit 832f166b38acc9c68c9c1fcea1432d2ca881316b
+commit 31a0bfea9911f24f563d70bfdea6ba7759071842
 Author: Galen Charlton <gmc at esilibrary.com>
-Date:   Mon May 21 17:29:05 2012 -0400
+Date:   Tue Nov 1 17:20:49 2016 -0400
 
-    fix up index/position type for calls of various osrfList* functions
-    
-    osrfListSet, osrfListRemove, osrfListGetIndex, and osrfListExtract
-    all expect unsigned ints for the index/position parameter.
-    
-    src/jserver is ignored by this commit as its removal is pending.
+    LP#1631522: dev doc now describes ->dispatch
     
     Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-    Signed-off-by: Dan Scott <dan at coffeecode.net>
 
-1	1	src/gateway/osrf_http_translator.c
-2	2	src/libopensrf/osrf_json_tools.c
-1	1	src/libopensrf/osrf_list.c
-1	1	src/libopensrf/string_array.c
-1	1	src/router/osrf_router.c
+5	1	doc/Application-HOWTO.txt
 
-commit bdc4cfe354051e4132d6ffa2da3e0942acb3f780
-Author: Dan Scott <dan at coffeecode.net>
-Date:   Sat May 5 01:58:22 2012 -0400
+commit 1431100b4737a61b1a294bbf66f9a5867dec358b
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Tue Nov 1 17:03:03 2016 -0400
 
-    Remove comparisons that can never evaluate to true
-    
-    Using clang as the compiler results in 4 warnings like the following:
+    LP#1631522: include example of ->dispatch in example app
     
-    osrf_list.c:106:23: warning: comparison of unsigned expression < 0 is
-    always false [-Wtautological-compare]
-            if(!list || position < 0) return NULL;
-                        ~~~~~~~~ ^ ~
+    This patch also makes the Perl opensrf.math demo app work
+    correctly, as it hadn't been constructing opensrf.dbmath
+    method names correctly.
     
-    (Explanation: "position" is an unsigned int; thus the comparison to < 0
-    can never evaluate to true).
-    
-    Signed-off-by: Dan Scott <dan at coffeecode.net>
     Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-4	4	src/libopensrf/osrf_list.c
+4	5	src/perl/lib/OpenSRF/Application/Demo/Math.pm
 
-commit 3aabf1932f93bc6e1e6693001734a1f1bcdbdce0
-Author: Dan Scott <dan at coffeecode.net>
-Date:   Sat May 5 01:32:25 2012 -0400
+commit 9d106aef9ab0a8d5af75977ffb4cc5f8f3fe5c79
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Thu Aug 25 17:42:31 2016 -0400
 
-    LP954059: Silence uninitialized var warning
-    
-    Compiling osrf_utf8.c generates the following warning:
+    LP#1631522: Dispatch mode for method_lookup subrequests
     
-    osrf_utf8.c:510:29: warning: utf8_char may be used uninitialized in this
-    function [-Wuninitialized]
+    There is a pattern in the wild of using OpenSRF's method_lookup() facility
+    to decide between one of several local methods when delegating to pre-existing
+    logic.  Often times, we want to simply hand control over to another method,
+    but the output of a subrequest's run() is an array of results.  The caller has
+    to know if, and how, to restructure the result for the client.
     
-    So... initialize utf8_char when we declare it, and make the compiler
-    happy.
+    Instead, we can now call dispatch() instead of run() and have OpenSRF session
+    control completely passed to the delegate code.  This way, the delegate code
+    need not know anything about its caller, and vice versa.
     
-    Signed-off-by: Dan Scott <dan at coffeecode.net>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
     Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-1	1	src/libopensrf/osrf_utf8.c
+28	3	src/perl/lib/OpenSRF/AppSession.pm
+8	1	src/perl/lib/OpenSRF/Application.pm
 
-commit 4fe1fdc7d4561e04212444786fd61d95eae69eb0
+commit dbf9ec150dfa6a5b87028aa890a80b529dfe5683
 Author: Galen Charlton <gmc at esilibrary.com>
-Date:   Mon May 21 17:02:34 2012 -0400
+Date:   Tue Nov 1 16:30:26 2016 -0400
 
-    LP# 953299 - defend against null and zero-length cache keys
-    
-    Ignore undefined and zero-length (after key normalization) cache
-    keys.
+    LP#1612771: add release notes
     
     Signed-off-by: Galen Charlton <gmc at esilibrary.com>
-    Signed-off-by: Dan Scott <dan at coffeecode.net>
 
-9	2	src/perl/lib/OpenSRF/Utils/Cache.pm
+19	0	doc/Bundling-and-Chunking.txt
+ create mode 100644 doc/Bundling-and-Chunking.txt
 
-commit 3e97b0f69be04957eefa149d06e05111f3ad4291
-Author: Dan Scott <dan at coffeecode.net>
-Date:   Mon May 21 12:18:41 2012 -0400
+commit 76a5fd0055b2af25f0783825c951021a32a5f17d
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Tue Nov 1 16:22:10 2016 -0400
 
-    LP# 953299 - Prevent get/set of invalid cache keys
+    LP#1612771: fix error in POD
     
-    Clients of OpenSRF::Utils::Cache occasionally request cache keys that
-    contain invalid characters (a particular case is ISBNs that contain
-    spaces), so strip those out of incoming get/set requests to avoid ugly
-    memcached errors.
-    
-    Signed-off-by: Dan Scott <dan at coffeecode.net>
     Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-25	0	src/perl/lib/OpenSRF/Utils/Cache.pm
-3	1	src/perl/t/09-Utils-Cache.t
-
-commit c6cf4d9b6530f5b8b6bdf95c26db9986656fcce8
-Author: Dan Scott <dan at coffeecode.net>
-Date:   Mon May 21 12:41:25 2012 -0400
-
-    .gitignore - ignore more built stuff in fewer lines
-    
-    Use the power of glob to catch more built files that we want to ignore,
-    while simplifying the .gitignore file significantly.
-    
-    Signed-off-by: Dan Scott <dan at coffeecode.net>
-
-23	108	.gitignore
-
-commit 2c0fb3a9f6aeea9c93846c573ced8d235ec03c7c
-Author: Dan Scott <dan at coffeecode.net>
-Date:   Mon May 21 11:48:26 2012 -0400
-
-    Revert inadvertently introduced debugging code
-    
-    In commit 91b8790c, several debugging lines were accidentally committed
-    to the OpenSRF caching utility. Revert that change.
-    
-    Signed-off-by: Dan Scott <dan at coffeecode.net>
-
-0	3	src/perl/lib/OpenSRF/Utils/Cache.pm
-
-commit f6d38086a42cd6a60d7ed45461d99076cf4d9e5e
-Author: Dan Scott <dan at coffeecode.net>
-Date:   Tue May 1 22:11:00 2012 -0400
-
-    Minor cleanups to Java dependency build process
-    
-    While configure.ac still hardcodes the expected location of the Java
-    dependencies (JSON and Memcached classes), we can clean up some of the
-    lower-level challenges with the Java build.
-    
-    * StAX and WSTX were rolled into the core Java environment long ago,
-      so there's no need to download them and even less need to verify
-      that the downloaded version exist.
-    * The Memcached class is now up to 2.0.1, per deps.sh, but the deps.inc
-      file was pointing at 1.5.1.
-    * Speaking of the deps.inc file, nothing seems to use it; delete it.
-    * The Makefile was dying because the variables for the Memcached and
-      JSON classes weren't defined. Define those at the top of the Makefile.
-    
-    Signed-off-by: Dan Scott <dan at coffeecode.net>
-
-4	3	src/java/Makefile.am
-0	5	src/java/deps.inc
- delete mode 100644 src/java/deps.inc
+1	1	src/perl/lib/OpenSRF/DomainObject/oilsResponse.pm
 
-commit d9487c42a1e3432be9fa3da9b2fad2b42d24a645
-Author: Dan Scott <dan at coffeecode.net>
-Date:   Tue May 1 22:08:23 2012 -0400
+commit 4f73f38bae3892fa4f6b3980c5724af521a31fde
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Tue Nov 1 16:03:50 2016 -0400
 
-    Clean up root directory: INSTALL, .gitignore, autoreconf
+    LP#1612771: update protocol documentation
     
-    * Update the README to avoid running autoreconf with the "-f" flag.
-    * Make the INSTALL file a symbolic link to the README to avoid
-      creating a generic INSTALL file each time autoreconf is run.
-    * Add a .gitignore file that ignores all of the built files.
+    Now that we have PARTIAL and NOCONTENT statuses, let's
+    mention them in the documentation for the benefit of
+    folks writing future clients.
     
-    Signed-off-by: Dan Scott <dan at coffeecode.net>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-181	0	.gitignore
-1	0	INSTALL
-1	1	README
- create mode 100644 .gitignore
- create mode 120000 INSTALL
+9	1	doc/OpenSRF-Messaging-Protocol.html
 
-commit c4c2d62cdf47ee7e5d02fac44cce5515a77c362c
-Author: Dan Scott <dan at coffeecode.net>
-Date:   Tue May 1 21:31:38 2012 -0400
+commit d79c7eee6ce44bd3b38bd712d487cb31752c3a31
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Tue Nov 1 15:46:13 2016 -0400
 
-    Change Java deps.sh to include . in CLASSPATH
+    LP#1612771: don't adjust max_stanza_size during installation
     
-    Following the directions given by running deps.sh was a little bit
-    frustrating; we need to work in some documentation on how to use the
-    Java bits of OpenSRF - and perhaps look at a more standard option like
-    maven for dependencies.
+    As the typical max_stanza_size for ejabberd installations
+    is larger than what OpenSRF now needs, this patch adjusts
+    the installation instructions to remove the step to change
+    max_stanza_size.
     
-    Signed-off-by: Dan Scott <dan at coffeecode.net>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-1	1	src/java/deps.sh
+10	13	README
 
-commit d7d8923e98a91c070668a529957d7ee7033529a7
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Fri Mar 16 09:56:13 2012 -0400
+commit fd1ce3521553d6ddbc42762090be8ecdbc0b39f2
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Sun Feb 23 15:55:52 2014 -0500
 
-    Java Gateway interface improved exception handling
-    
-    Handle any exceptions that should not reasonably occur in normal
-    operation under the covers.  Bubble the rest up.  Update test code with
-    examples.
+    LP#1612771: Add chunking support to JS implementation
     
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
     Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-57	51	src/java/org/opensrf/net/http/GatewayRequest.java
-16	8	src/java/org/opensrf/net/http/HttpConnection.java
-41	12	src/java/org/opensrf/net/http/HttpRequest.java
-5	2	src/java/org/opensrf/net/http/HttpRequestHandler.java
-50	30	src/java/org/opensrf/test/TestGateway.java
+3	0	include/opensrf/osrf_message.h
+57	6	src/javascript/opensrf.js
 
-commit ad253eb0d67098b69c71141061563b1802f33f97
+commit 75a9906d5a5e90c60c8e0614e0c71796c511ec18
 Author: Bill Erickson <berick at esilibrary.com>
-Date:   Thu Mar 15 17:26:16 2012 -0400
+Date:   Fri Feb 28 12:44:11 2014 -0500
 
-    Java gateway interface test class
+    LP#1612771: implement C max_chunk_size server support
     
     Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-58	0	src/java/org/opensrf/test/TestGateway.java
- create mode 100644 src/java/org/opensrf/test/TestGateway.java
+94	23	src/libopensrf/osrf_application.c
+7	1	src/libopensrf/osrf_message.c
 
-commit 5b5e28f16be77d9b23a98579d10173103dd907ed
+commit 18be4a4cf242a274cf5a3143c2063d75331ec7c0
 Author: Bill Erickson <berick at esilibrary.com>
-Date:   Mon Feb 27 18:05:07 2012 -0500
+Date:   Thu Feb 27 15:18:15 2014 -0500
 
-    Java HTTP gateway interface
-    
-    Supports sync and async requests.  Async requests support onResponse,
-    onComplete, and onError handlers.
+    LP#1612771: set Perl / C max_chunk_size default sizes
     
-    Supports a max-threads value to limit the number of activately
-    communicating threads over any connection.  When max-threads is reached,
-    requests are queued and delivered as soon as there is room.
+    default max bundle size == 25K
+    default max chunk size  == 50K
     
-    Note that since this is talking to the OpenSRF gateway and not the
-    translater, responses are simply collected and passed one at a time to
-    onResponse.  They are not streamed.  The goal of supporting onResponse
-    is to provide the same client API for both the gateway and translator.
+    Note with Ejabberd using 65536 as the default max stanza size, these
+    new OpenSRF defaults mean that all messages will fit the default
+    message size constraints -- i.e. no more need to raise the
+    max_stanza_size.
     
     Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
-
-129	0	src/java/org/opensrf/net/http/GatewayRequest.java
-97	0	src/java/org/opensrf/net/http/HttpConnection.java
-66	0	src/java/org/opensrf/net/http/HttpRequest.java
-25	0	src/java/org/opensrf/net/http/HttpRequestHandler.java
- create mode 100644 src/java/org/opensrf/net/http/GatewayRequest.java
- create mode 100644 src/java/org/opensrf/net/http/HttpConnection.java
- create mode 100644 src/java/org/opensrf/net/http/HttpRequest.java
- create mode 100644 src/java/org/opensrf/net/http/HttpRequestHandler.java
-
-commit 85830ce301654e2dfefcd186a2bd63bd3785a967
-Author: Dan Scott <dscott at laurentian.ca>
-Date:   Mon Apr 23 14:17:35 2012 -0400
-
-    Remove GNU default INSTALL file
-    
-    GNU autotools generate an INSTALL file that is generic and which
-    conflicts with the instructions given in the README. Installation is
-    already hard enough without conflicting instructions, so delete the
-    INSTALL file.
-    
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
-
-0	237	INSTALL
- delete mode 100644 INSTALL
-
-commit bc36b120e78f9fa995856a144b9054e2a0ab1f3e
-Author: Dan Scott <dscott at laurentian.ca>
-Date:   Mon Apr 23 14:13:37 2012 -0400
-
-    autotools - do not explicitly include m4 directory
-    
-    Some versions of autotools complain bitterly if an m4 include directory
-    is specified that does not exist.
-    
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
-
-0	2	Makefile.am
-0	1	configure.ac
-
-commit 2bdd580e2bcc6660b073b6853dc1544d5c68a6fd
-Author: Dan Scott <dscott at laurentian.ca>
-Date:   Mon Apr 23 13:45:14 2012 -0400
-
-    Name the bootstrapping steps in buildbot
-    
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
-
-10	6	examples/buildbot.cfg
-
-commit f21b0a5aa647e7303cc0d6d3fb70cadf0e8fc812
-Author: Dan Scott <dscott at laurentian.ca>
-Date:   Mon Apr 23 13:16:25 2012 -0400
-
-    Fix buildbot configuration
-    
-    Need to define our tests before they're called; also, can't blindly
-    invoke a step out of the proper scope. Duh.
-    
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
-    
-    Conflicts:
-    
-    	examples/buildbot.cfg
-
-55	18	examples/buildbot.cfg
-
-commit 4d58c3d24b65f96e0648e37a3f4da82051a58917
-Author: Dan Scott <dscott at laurentian.ca>
-Date:   Mon Apr 23 12:52:57 2012 -0400
-
-    Switch to autoreconf instead of autogen.sh
-    
-    Update the buildbot config accordingly to avoid erroneous errors of
-    erroneosity.
-    
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
-
-1	1	README
-0	43	autogen.sh
-12	4	examples/buildbot.cfg
- delete mode 100755 autogen.sh
-
-commit 5849a119bd363b152b41ed7a39c787f009412572
-Author: Dan Scott <dscott at laurentian.ca>
-Date:   Mon Apr 2 16:48:15 2012 -0400
-
-    Bump version numbers for 2.1.0-RC1 release
-    
-    Also update the ChangeLog with relevant entries.
-    
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-21	0	ChangeLog
-1	1	src/perl/lib/OpenSRF.pm
-1	1	version.m4
+6	1	include/opensrf/osrf_app_session.h
+0	5	src/libopensrf/osrf_application.c
+2	2	src/perl/lib/OpenSRF/Application.pm
 
-commit 0ed34101e67dc04292f906945dd5752c73985412
-Author: Dan Scott <dscott at laurentian.ca>
-Date:   Fri Mar 23 13:05:31 2012 -0400
+commit b3b6b4211472e4897581a93d9615d8544f29779f
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Sun Feb 23 16:35:17 2014 -0500
 
-    Add trailing period, "localhost" to ejabberd.cfg example
+    LP#1612771: C support for receiving chunked responses
     
-    Thanks to Yamil Suarez for noticing a discrepancy between the older wiki
-    instructions and the README.
-    
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
-
-1	1	README
-
-commit cf4d4798c5949abaf6bc9a4c3a62bf9a6533977b
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Wed Mar 14 11:38:18 2012 -0400
-
-    Prevent undef warnings on perl socket read nbytes test
+    * client parsing
+    * consistent w/ Perl, we now have "bundling" and "chunking"
     
     Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Dan Scott <dan at coffeecode.net>
-
-1	1	src/perl/lib/OpenSRF/Transport/SlimJabber/XMPPReader.pm
 
-commit fff96812ff55cc50374d5a16e7c803fac2c2f2a5
-Author: Dan Scott <dscott at laurentian.ca>
-Date:   Sun Mar 11 11:22:14 2012 -0400
-
-    Prepare 2.1.0-alpha1 for release
-    
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
-
-555	0	ChangeLog
-2	2	README
-2	2	src/perl/lib/OpenSRF.pm
-1	1	version.m4
+1	0	include/opensrf/osrf_app_session.h
+3	2	include/opensrf/osrf_application.h
+56	0	src/libopensrf/osrf_app_session.c
+9	8	src/libopensrf/osrf_application.c
 
-commit f470b55b86fd59f31dd142d8cb55fe812265892e
+commit 56e65d1e6fb4ee72b28b4e008b9461d5bac55b8d
 Author: Bill Erickson <berick at esilibrary.com>
-Date:   Mon Feb 20 14:40:30 2012 -0500
+Date:   Mon Feb 24 15:14:19 2014 -0500
 
-    Detect remote disconnect in Perl XMPP reader
+    LP#1612771: Perl max_chunk_size additions
     
-    When the jabber server severs the connection, it leaves the Perl libs
-    with a socket that perpetually appears ready for reading, but always
-    returns 0 bytes.  This produces a loop in the client code.  This change
-    detects this situation, logs an error, and throws an exception.
+    * Added missing max_chunk_size method to AppSession
+    * Copy API max_chunk_size value into the handler AppRequest
+    * Fix error where no-chunking resulted in empty responses
     
     Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-13	2	src/perl/lib/OpenSRF/Transport/SlimJabber/XMPPReader.pm
+25	14	src/perl/lib/OpenSRF/AppSession.pm
+2	1	src/perl/lib/OpenSRF/Application.pm
+12	4	src/perl/lib/OpenSRF/DomainObject/oilsResponse.pm
 
-commit 974d3a0dd4ddd134033b16bcd9e2fde34302ffd5
-Author: Dan Wells <dbw2 at calvin.edu>
-Date:   Tue Mar 6 15:08:33 2012 -0500
+commit 01f95834835bed94df93a7fdad59e38486e6485a
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Sun Feb 23 14:51:13 2014 -0500
 
-    Protect gateway from format-string crashes in data
-    
-    As a common security measure, printf-style formatting codes are
-    not allowed to be directly interpreted from a writable segment.
-    The gateway code currently has the following function call:
-    
-    osrfLogActivity( OSRF_LOG_MARK, act->buf );
-    
-    This is a variadic function which expects the 'act->buf' position
-    to contain a format string and any trailing arguments to be the
-    values passed to the formatter.  Since act->buf is the value of
-    what we passed in, some data inadvertantly contains format strings,
-    and since it is a writable segment, the program crashes.  Here is
-    an example of a crash-causing call:
-    
-    http://localhost/osrf-gateway-v1?service=test&method=test&param=%22%251n%22
+    LP#1612771: bundling and chunking
     
-    The param is interpreted as "%1n" and abruptly fails.
-    
-    The simple solution is to include a formatter so that our param gets
-    demoted to being mere data, i.e.:
-    
-    osrfLogActivity( OSRF_LOG_MARK, "%s", act->buf );
-    
-    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
-
-1	1	src/gateway/osrf_json_gateway.c
-
-commit fd92a859e2ba3eeeaafe4904cd04973eb8cd572b
-Author: Thomas Berezansky <tsbere at mvlc.org>
-Date:   Wed Mar 7 16:42:21 2012 -0500
-
-    Stop warning about missing parentheses...
+    This patch is first in a series of patches that provides the following
+    features:
     
-    ...by adding them.
+    * OpenSRF message bundling -- Pack multiple OpenSRF messages together
+    in a single XMPP envelope, as long as we believe more messages will be
+    sent in the future and we are below some threshold of combined message size.
+    The default for that threshold is 25Kb.
     
-    Signed-off-by: Thomas Berezansky <tsbere at mvlc.org>
-
-1	1	src/perl/lib/OpenSRF/Application/Validator.pm
-
-commit 8cfa0ae50935176a1574e8f233c8d4d88442c0ad
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Thu Feb 16 17:31:29 2012 -0500
-
-    Refresh child file handles on status read
+     * OpenSRF message chunking -- Break up large OpenSRF messages across
+    multiple XMPP envelopes. This is implemented with a new OpenSRF message type.
+    C, Perl, and Javascript libraries are taught how to reconstruct chunked
+    messages. The default chunking threshold is 50Kb, just a bit below the default
+    ejabberd max stanza size of 64Kb.
     
-    If a child process dies while the parent is attempting to read status
-    information from the child, the pipe connecting the two will be cleaned
-    up.  The parent mustn't attempt to read from the dead pipe or it will
-    result in a bad file descriptor error, culminating in a high-cpu
-    infinite loop on the parent (Listener) process.
+    This patch in particular renames "chunking" to "bundling", then
+    implements message splitting ("chunking") in Perl using two new
+    oilsResult subclasses
     
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Thomas Berezansky <tsbere at mvlc.org>
-    Signed-off-by: Jason Stephenson <jstephenson at mvlc.org>
-
-4	3	src/perl/lib/OpenSRF/Server.pm
-
-commit 37606bf64f2829258cc612e730782e081e2ac6bb
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Fri Jan 13 10:57:59 2012 -0500
-
-    Python libs for OpenSRF ingress tracking
-    
-    osrf.ses.Session.ingress(ingress)
-    
-    This also set the "srfsh" ingress value for srfsh.py.
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
     Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-11	1	src/python/osrf/ses.py
-2	0	src/python/osrf/stack.py
-1	0	src/python/srfsh.py
+80	43	src/perl/lib/OpenSRF/AppSession.pm
+13	6	src/perl/lib/OpenSRF/Application.pm
+83	1	src/perl/lib/OpenSRF/DomainObject/oilsResponse.pm
 
-commit 26c31a9d5728adbd884a1369034caff41471130b
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Fri Jan 13 09:35:18 2012 -0500
+commit 784233808062dbc599b649ce9858759ab0a8dff3
+Author: Ben Shum <ben at evergreener.net>
+Date:   Tue Jul 5 12:53:13 2016 -0400
 
-    Set OpenSRF ingress value for srfsh/gateways
-    
-    Sets the "srfsh", "gateway-v1", and "translator-v1" ingress values
-    accordingly.
+    LP#1603708: Remove support for Ubuntu 12.04 Precise
     
-    For the translater, it's necessary to stamp the unpacked messages with
-    the updated ingress, then re-serialize before sending the messages along.
+    With support for Ubuntu 16.04 Xenial in place, remove the oldest LTS, which is
+    Ubuntu 12.04 Precise.
     
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-18	21	src/gateway/osrf_http_translator.c
-1	0	src/gateway/osrf_json_gateway.c
-1	0	src/srfsh/srfsh.c
+2	3	README
+3	13	src/extras/Makefile.install
 
-commit 7ec92808fea116ead923e475ad5242a54b688798
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Fri Jan 13 09:15:05 2012 -0500
+commit 15f8c538af5469545fabab9e21252f49555ae131
+Author: Ben Shum <ben at evergreener.net>
+Date:   Tue Jul 5 12:50:34 2016 -0400
 
-    C libs for OpenSRF ingress tracking
+    Docs: Change 14.04 to Trusty in README
     
-    osrfAppSessionSetIngress(<ingress>);
+    For consistency, change references from numbered "Ubuntu 14.04" to "Ubuntu Trusty"
     
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-5	0	include/opensrf/osrf_app_session.h
-5	0	include/opensrf/osrf_message.h
-26	0	src/libopensrf/osrf_app_session.c
-32	0	src/libopensrf/osrf_message.c
-4	0	src/libopensrf/osrf_stack.c
+3	3	README
 
-commit b12de37f9480c68b1c8b033da18c3cc0d0ebc8f0
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Thu Jan 12 16:36:16 2012 -0500
+commit e3f9b6a3adb8391e83221909575554ab1ec8c74c
+Author: Ben Shum <ben at evergreener.net>
+Date:   Tue Jul 5 12:44:17 2016 -0400
 
-    Perl libs for OpenSRF ingress tracking
-    
-    Ingress is a free-form text value which represents the entry point for
-    the client into the opensrf network.  The value is passed within opensrf
-    messages, similar to "locale".  Clients should specify the ingress
-    before any opensrf communication occurs.
+    Docs: Add Xenial references in the websocket setup instructions
     
-    OpenSRF::AppSession->ingress($ingress);
+    We were missing Xenial references for the websocket setup instructions.
     
-    Stock values include the following:
+    They are the same as Trusty, so group together for now.
     
-    opensrf (default)
-    srfsh
-    translator-v1
-    gateway-v1
+    Also, change references to "Ubuntu 16.04" to read "Ubuntu Xenial" too.
     
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-9	0	src/perl/lib/OpenSRF/AppSession.pm
-20	1	src/perl/lib/OpenSRF/DomainObject/oilsMessage.pm
-2	0	src/perl/lib/OpenSRF/Transport.pm
+5	5	README
 
-commit 67d4d5de8656128f32b20f4c04dbf81a1028e929
-Author: Dan Scott <dscott at laurentian.ca>
-Date:   Wed Feb 29 10:48:38 2012 -0500
+commit 34038f2e3dd9a2ad6842f3593938955143213b11
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Fri Jul 10 10:52:20 2015 -0400
 
-    Copy opensrf_core.xml.example to a clean opensrf_core.xml file
-    
-    Ben Shum with the assist again.
+    LP#1473479 Syslog configuration adoption
     
-    Also, add ~/.srfsh.xml to the definition list of interesting OpenSRF
-    configuration files.
+    When an OpenSRF client is run with syslog enabled and with the
+    OSRF_ADOPT_SYSLOG environment variable set to a true value, no attempt
+    is made to modify the syslog configuration, including no calls to
+    openlog()/closelog() and no modification of the syslog facility when
+    calling syslog().
     
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-6	3	README
+9	3	src/perl/lib/OpenSRF/Utils/Logger.pm
 
-commit 68025993b01cc95f66a0ca723841e1abb406709f
-Author: Dan Scott <dscott at laurentian.ca>
-Date:   Wed Feb 29 10:42:58 2012 -0500
+commit b6557d6a781fe7f7e16d0c5df5707ce5f8f49d48
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Oct 7 12:19:52 2016 -0400
 
-    Include explicit instructions to copy the opensrf config files
+    LP#1631520: configure install location of Perl modules
     
-    Also noted by the sharp-eyed Ben Shum, we didn't tell people to actually
-    copy opensrf.xml.example / opensrf_core.xml.example, which could lead to
-    failure.
+    Add --with-perlbase configure option to specify
+    an alternative location for installing the Perl modules. This
+    can be useful for setups that want to run the Perl modules
+    from a shared filesystem or environments that need to run
+    multiple versions of OpenSRF simultaneously.
     
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
-
-35	17	README
-
-commit 75f27021d4b45eebbf52a89a35f96e775f92a207
-Author: Dan Scott <dscott at laurentian.ca>
-Date:   Wed Feb 29 10:27:36 2012 -0500
-
-    Update max_user_sessions suggestion to 10000 to match wiki
+    Users of --with-perlbase are responsible for ensuring that
+    PERL5LIB is set appropriately.
     
-    Ben Shum noticed that the README still specified 1000 for
-    max_user_sessions in the ejabberd.cfg file, whereas current larger
-    OpenSRF systems with many services may blow past that limit. Update to
-    match the current wiki specification of 10000.
+    To test
+    -------
+    [1] Use --with-perlbase during the configure step, e.g.,
     
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
-
-1	1	README
-
-commit 61fdb582dc918a1003351ff25842a23aaff24f71
-Author: Dan Scott <dscott at laurentian.ca>
-Date:   Wed Jan 4 15:21:36 2012 -0500
-
-    Remove reference to Fedora specific version in prereq installer
+        ./configure --perl-base /tmp/perl
     
-    Fedora changes every 6 months, so it's probably silly to have a make
-    target of "fedora14" when that is no longer supported by the Fedora
-    project itself. As Fedora has packaged all of the OpenSRF dependencies
-    (thanks, Ben Webb!), in theory it should be supported by the latest
-    releases of Fedora in the future... as long as we don't introduce any
-    dependencies on deprecated versions of packages.
+    [2] Run make; make check; sudo make install
+    [3] Verify that the Perl modules are installed under
+        /tmp/perl.
+    [4] Make a change to a Perl source file, then
+        go to src/perl, then run sudo ./Build install. Verify
+        that it remembers the --with-perlbase directory
+        and installs the updated module there.
     
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-2	2	src/extras/Makefile.install
+1	0	Makefile.am
+6	0	configure.ac
+1	1	src/perl/Makefile.am
 
-commit ba6d4c7cc2988dafb6ca8de2d1f2f93194dcf3b3
-Author: Dan Scott <dscott at laurentian.ca>
-Date:   Wed Jan 4 15:17:48 2012 -0500
+commit 1c8a7dcb24d4ea3a8aa7dc718d2e1f0b12430cb1
+Author: Ben Shum <ben at evergreener.net>
+Date:   Tue May 24 01:24:09 2016 -0400
 
-    Update README to match Evergreen's format
-    
-    Reference the various accounts in use consistently.
-    
-    Correct reference to "fedora" target in Makefile.install.
-    
-    Put the developer preamble up front.
-    
-    Provide more Fedora examples.
+    LP#1585041: Move debian_sys_config target for Debian distributions
     
-    Do not include leading "#" and "$" in bash examples, to make it easier
-    for people to copy and paste.
+    Similar to how things were reordered for Ubuntu, let's move debian_sys_config
+    for Debian distributions.
     
-    Include source highlighting instructions and titles for example
-    commands.
-    
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-152	98	README
+4	4	src/extras/Makefile.install
 
-commit cc7a12f74a9ce4555d5abd8989dfab43290fb41c
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Fri Feb 24 16:28:27 2012 -0500
+commit f3ac7f14ec675e99784b9a5037be66f8c90c22f2
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Tue Feb 23 11:22:34 2016 -0500
 
-    Java dependencies update
+    LP#1485371: Release notes for TZ handling in OpenSRF
     
-    As of Java 6, XML Stax parsing is natively supported.  This change
-    removes the external Stax dependencies and updates how the JSON libs are
-    fetched (in deps.sh), which now come from github.
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-17	20	src/java/deps.sh
-1	4	src/java/org/opensrf/net/xmpp/XMPPReader.java
-1	4	src/java/org/opensrf/util/XMLFlattener.java
+44	0	doc/TZ-handling.txt
+ create mode 100644 doc/TZ-handling.txt
 
-commit 07b2eff0a7dfc492afd8e67788eae159c5ab96b7
-Author: Dan Scott <dscott at laurentian.ca>
-Date:   Tue Feb 21 09:55:57 2012 -0500
+commit 91a8f051220ba1b29e76068a58cbb400ae521834
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Aug 3 13:27:56 2015 -0400
 
-    We're not in Subversion anymore, Dorothy
+    LP#1485371: Use client-supplied TZ
     
-    We're in git now, make the README reflect that accordingly. Thanks to
-    Warren Layton for the tip!
+    Currently, there is no protocol-level mechanism for passing the client's
+    desired timezone to the server. In much the same way we pass the locale,
+    we can let the server know what timezone it should use when interpreting
+    time stamps.
     
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
-
-2	2	README
-
-commit aeeb4acdc8695a640021dbc6902ab3279652583d
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Tue Feb 14 09:10:58 2012 -0500
-
-    Perl parent/child write improvements
+    To do this we:
     
-    * Updated variable names for clarity
-    * Added more inline comments
-    * Added additional error logging
-    * For severe read errors, allow the child to gracefully skip the request
+     * Teach perl server code to live in the client TZ, if supplied
+     * Teach perl client code to send the current $ENV{TZ}
+     * Teach javascript library to include client TZ in
+       gateway/translator/websocket communication
+     * Teach C code to pull the incoming TZ and apply it to outgoing messages
+     * Teach srfsh to pull TZ from the environment and pass it with requests
     
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Jason Stephenson <jstephenson at mvlc.org>
     Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-25	19	src/perl/lib/OpenSRF/Server.pm
+5	0	include/opensrf/osrf_app_session.h
+7	0	include/opensrf/osrf_message.h
+21	0	src/javascript/opensrf.js
+32	0	src/libopensrf/osrf_app_session.c
+33	0	src/libopensrf/osrf_message.c
+5	0	src/libopensrf/osrf_stack.c
+25	1	src/perl/lib/OpenSRF/DomainObject/oilsMessage.pm
+4	0	src/srfsh/srfsh.c
 
-commit 08ee4f993fe773e37233b139961cbcdae2fe93b8
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Mon Feb 13 16:53:59 2012 -0500
+commit e7fe347408b52295f2f820f9527ccf00952b71e8
+Author: Jason Stephenson <jason at sigio.com>
+Date:   Wed May 4 13:05:31 2016 -0400
 
-    Perl pipe reading overhaul : data size header
+    LP#1551090: Update README for Ubuntu 16.04 (Xenial Xerus).
     
-    The lockfile mechanism for preventing premature end of reads on child
-    processes suffers from one serious flaw:  if the data to write exceeds
-    the pipe buffer size, the parent will block on syswrite and the service
-    will lock up.  It's also not as effecient (for the normal case) as the
-    code was without the lockfile, becasue the writes and reads are
-    serialized.
+    Add installation steps for Ubuntu 16.04.
     
-    This commit replaces the lockfile mechanism with a protocol header in
-    the data.  The first X (currently 12) bytes of data written to the child
-    process will contain the full length of the data to be written (minus
-    the header size).  The child now reads the data in parallel with the parent as
-    data is available.  If the child reads all available data (in the pipe)
-    but not all of the expected data, the child will go back into a select()
-    wait pending more data from the parent.  The process continues until all
-    data is read.
-    
-    This same mechanism is already used to commicate status info from child
-    processes to the parent.
-    
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Jason Stephenson <jstephenson at mvlc.org>
-    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+    Signed-off-by: Ben Shum <ben at evergreener.net>
 
-49	73	src/perl/lib/OpenSRF/Server.pm
-1	2	src/perl/lib/OpenSRF/System.pm
+31	5	README
 
-commit 04558f38c1c1d314acb978a37193dacb4a6eba31
-Author: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
-Date:   Fri Jan 27 09:05:07 2012 -0500
+commit 032a964795df73053d09dca37e62e3e276ce343e
+Author: Jason Stephenson <jason at sigio.com>
+Date:   Tue Apr 19 16:56:15 2016 -0400
 
-    JSON_v0 has been superseded, and it has insidious bugs anyway.
-    
-    For example, you cannot round-trip this through JSON2js() and js2JSON()
-    in IE8: http://paste.lisp.org/display/127338
+    LP#1551090: Enable mod_perl2 on Ubuntu 16.04 (Xenial Xerus).
     
-    This will make Evergreen's build fail until the change specified in
-    LP #922609 is applied.
+    Ubuntu Xenial Xerus does not automatically enable mod_perl2 for
+    Apache2 when the package is installed, so we enable it via the
+    Makefile.install.
     
-    Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+    Signed-off-by: Ben Shum <ben at evergreener.net>
 
-1	1	src/Makefile.am
-0	135	src/javascript/JSON_v0.js
- delete mode 100644 src/javascript/JSON_v0.js
+5	1	src/extras/Makefile.install
 
-commit 89f41c82798dbac56716fdd5beeb6c0de3e4ce2e
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Mon Nov 7 17:30:44 2011 -0500
+commit 1fca796c47c9e9c06e65b91085c13ad2cbe52954
+Author: Chris Sharp <csharp at georgialibraries.org>
+Date:   Thu Feb 18 20:12:40 2016 -0500
 
-    Sync parent/child write/read with lock file
-    
-    Wrap parent writes to child socket and initial child reads of the
-    socket in file lock (via flock()) to prevent rare race condition
-    where child process reads to the end of the data before the parent
-    has written all bytes.
-    
-    This create a new lock file on the system, which resides in the same
-    directory as the pid files.  The lock file is created and destroyed by
-    the opensrf perl mods at service start up and shutdown.
+    LP#1551090: Adding apache2-dev dependency to xenial and fixing whitespace
     
-    See also https://bugs.launchpad.net/opensrf/+bug/883155
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+    Signed-off-by: Ben Shum <ben at evergreener.net>
     
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Conflicts:
+    	src/extras/Makefile.install
 
-1	1	bin/opensrf-perl.pl.in
-60	8	src/perl/lib/OpenSRF/Server.pm
-3	2	src/perl/lib/OpenSRF/System.pm
+5	4	src/extras/Makefile.install
 
-commit 3d089bdfd067676f99807f7cb2014e122c4dbf72
-Author: Dan Scott <dscott at laurentian.ca>
-Date:   Mon Dec 12 13:09:13 2011 -0500
+commit e91074cf23eeca5da7e9c00977448dcc19b779cc
+Author: Chris Sharp <csharp at georgialibraries.org>
+Date:   Thu Feb 18 18:10:34 2016 -0500
 
-    Update Perl OpenSRF build and tests for O:A:Validator
+    LP#1551090: Since we move apache to the "install_extra_debs*" targets,
     
-    Kickstarted by wanting to bring OpenSRF::Application::Validator into the
-    MANIFEST and testing coverage, I noticed a few other files that needed
-    to be added to the MANIFEST as well. This gets us closer to acceptable
-    according to "./Build distcheck"
+    we need to move debian_sys_config further down to compensate.
     
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+    Signed-off-by: Ben Shum <ben at evergreener.net>
 
-1	0	src/perl/Build.PL
-22	0	src/perl/MANIFEST
-6	1	src/perl/t/01-Application.t
+4	4	src/extras/Makefile.install
 
-commit 5e1fbcc1c8ae2f969dbeac93fe1da80c008ca42b
-Author: Thomas Berezansky <tsbere at mvlc.org>
-Date:   Fri Dec 9 15:19:12 2011 -0500
+commit 46dfeaf7245f81c1a8c9833b8cac87a997b23433
+Author: Chris Sharp <csharp at georgialibraries.org>
+Date:   Wed Feb 17 19:35:02 2016 -0500
 
-    OpenSRF Validator Service
-    
-    Add a new Validator service, and EmailAddress validators.
+    LP#1551090: Adding necessary connectivity for xenial deb installation.
     
-    The service runs a chain of one or more validators, each one being fed the
-    normalized output of the previous one.
-    
-    The return from each validator should be a hash of valid (0 or 1), the new
-    normalized output (the untouched input if invalid or nothing needed to be
-    changed), and if invalid an error string. Optionally, a validator can also
-    include an "additionals" hash of extra information to be included in the
-    final response.
-    
-    The complete list of validators included is:
-    
-    OpenSRF::Application::Validator::Base
-        The base validator. Always returns valid.
-    OpenSRF::Application::Validator::Invalid
-        Always returns invalid for testing purposes.
-    OpenSRF::Application::Validator::EmailAddress::Regex
-        Does a very basic regular expression check on email addresses.
-    OpenSRF::Application::Validator::EmailAddress::DNS
-        Uses Net::DNS to look up the domain on an email address
-    
-    Signed-off-by: Thomas Berezansky <tsbere at mvlc.org>
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+    Signed-off-by: Ben Shum <ben at evergreener.net>
 
-40	0	examples/opensrf.xml.example
-3	0	src/extras/Makefile.install
-50	0	src/perl/lib/OpenSRF/Application/Validator.pm
-12	0	src/perl/lib/OpenSRF/Application/Validator/Base.pm
-96	0	src/perl/lib/OpenSRF/Application/Validator/EmailAddress/DNS.pm
-23	0	src/perl/lib/OpenSRF/Application/Validator/EmailAddress/Regex.pm
-16	0	src/perl/lib/OpenSRF/Application/Validator/Invalid.pm
- create mode 100644 src/perl/lib/OpenSRF/Application/Validator.pm
- create mode 100644 src/perl/lib/OpenSRF/Application/Validator/Base.pm
- create mode 100644 src/perl/lib/OpenSRF/Application/Validator/EmailAddress/DNS.pm
- create mode 100644 src/perl/lib/OpenSRF/Application/Validator/EmailAddress/Regex.pm
- create mode 100644 src/perl/lib/OpenSRF/Application/Validator/Invalid.pm
+4	1	src/extras/Makefile.install
 
-commit b6b64deb16ed3f005d64f99365b0220a82d72431
-Author: Jason Stephenson <jstephenson at mvlc.org>
-Date:   Wed Dec 7 15:08:42 2011 -0500
+commit 334b6644ac319403f2095cff6f3cef992a9148ae
+Author: Chris Sharp <csharp at georgialibraries.org>
+Date:   Wed Feb 17 19:26:01 2016 -0500
 
-    Support installation for Ubuntu 12.04 Precise Pangolin.
+    LP#1551090: Adding apache2 package to Makefile.install deb list.
     
-    Update the README to include Precise Pangolin as a supported release.
-    
-    Update src/extras/Makefile.install to install two new debs required on
-    Ubuntu 12.04 alpha1.
-    
-    Signed-off-by: Jason Stephenson <jstephenson at mvlc.org>
     Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+    Signed-off-by: Ben Shum <ben at evergreener.net>
 
-1	0	README
-15	1	src/extras/Makefile.install
+1	0	src/extras/Makefile.install
 
-commit 3a4ae77be13349fae180fdc81bcc23e5a93032b4
-Author: Dan Scott <dscott at laurentian.ca>
-Date:   Fri Nov 4 09:42:50 2011 -0400
+commit c59b54a7c4f1d1561d23393f6122669d50f41166
+Author: Chris Sharp <csharp at georgialibraries.org>
+Date:   Wed Feb 17 15:28:05 2016 -0500
 
-    Add explicit chown command to README
+    LP#1551090: Updating Makefile to accommodate ubuntu-xenial target.
     
-    Warren Layton noticed that there was no explicit command to change the
-    ownership of the files in the /<PREFIX> directory to be owned by
-    "opensrf", although there was a statement that the files needed to be
-    owned by "opensrf". To reduce the chance of failure, add the explicit
-    command.
+    Removing some redundancy in the extra debs lists.
     
-    TODO (for a willing volunteer): teach the installer to change the
-    ownership at the time the files are installed!
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+    Signed-off-by: Ben Shum <ben at evergreener.net>
     
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Conflicts:
+    	src/extras/Makefile.install
 
-1	0	README
+17	16	src/extras/Makefile.install
 
-commit a7be31f137ccf6e2f4522c9a4c690a23b5636db8
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Fri Oct 28 11:33:24 2011 -0400
+commit c9174e7372b0c14091035617f0689f3719f7506b
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Fri Mar 18 10:59:11 2016 -0400
 
-    Add SIGPIPE retry handling to child data sysread
+    LP#1559121: remove Debian Squeeze support
     
-    Similar to the SIGPIPE retry logic wrapped around the parent process'
-    syswrite call (for sending data to a child process), protect the child's
-    sysread call (as it reads data from the parent).  In pre-2.0, the
-    sysread step was handled by Net::Server, but now we need to protect it
-    ourselves.
+    Now that Debian Squeeze's LTS (long-term support) period
+    has ended, Evergreen no longer offers community support
+    for that distribution. This patch removes references
+    to Squeeze from the installation scripts and documentation.
+    
+    To test:
+    
+    [1] Verify that Debian Squeeze is no longer referenced in
+        the installation documentation.
     
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
     Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Ben Shum <ben at evergreener.net>
 
-10	0	src/perl/lib/OpenSRF/Server.pm
+0	1	README
+1	14	src/extras/Makefile.install
 
-commit 40a753b10a3db58baa9179d75a76df1266589ea1
-Author: Dan Scott <dscott at laurentian.ca>
-Date:   Wed Oct 19 11:39:41 2011 -0400
+commit b6cf3eb912fa501a23f4a3f5664f1a12228e731b
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Thu Feb 4 13:09:48 2016 -0500
 
-    LP878284: stop_osrf action should stop, not start, Perl
-    
-    As reported by Vicent Mas <uvemas at gmail.com> to the Evergreen
-    developer's mailing list:
-    
-    """
-    It seems I've found a small bug in the
-    /openils/bin/osrf_ctl.sh script. The line for the osrf_stop action is:
-    
-    "stop_osrf") stop_python; stop_c; start_perl;;
+    LP#1350457: add test case for perl2JSONObject change
     
-    but should be:
-    
-    "stop_osrf") stop_python; stop_c; stop_perl;;
-    """
-    
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-1	1	bin/osrf_ctl.sh.in
+4	1	src/perl/t/09-Utils-JSON.t
 
-commit 07b5a335656be741353ab70c1d4717dacdbebc1b
-Author: Bill Erickson <berick at esilibrary.com>
-Date:   Tue Oct 18 09:17:10 2011 -0400
+commit e1581d4248a6fd42f6ebee233387777f63e25022
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Jul 30 13:29:46 2014 -0400
 
-    Warn when sending very large messages
+    LP#1350457: Pass caller's session to subrequests called via method_lookup
     
-    Depending on configuration, messages of a certain size sent through a
-    Jabber server will cause the jabber server to disconnect the client.
-    This change allows admins to configure a message size warning threshold.
-    When a message meets or exceeds the size threshold, a warning is issued
-    to the logs with the message size (in bytes) and the message recipient.
-    It does not prevent the message from being delivered.  It's purely
-    informational.
+    In the process of looking up a method for an internal subrequest, we lose
+    session info. This is a problem when the subrequest makes a remote request,
+    because then the subrequest can't look up the proper locale, among other
+    things. The forthcoming branch passes the caller's session to the subrequest.
     
-    Use 1 800 000 as the default threhold.
+    This patch also teaches OpenSRF object registration how to strip certain
+    object members -- in particular, the session -- so that introspection
+    continues to work.
     
-    Signed-off-by: Bill Erickson <berick at esilibrary.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
     Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-3	0	examples/opensrf_core.xml.example
-11	1	src/perl/lib/OpenSRF/Transport/SlimJabber/Client.pm
+9	4	src/perl/lib/OpenSRF/Application.pm
+8	1	src/perl/lib/OpenSRF/Utils/JSON.pm
 
-commit ffb8bb73a2f505cfda9d8b97fab1f82aa3fb7097
-Author: Dan Scott <dscott at laurentian.ca>
-Date:   Sat Sep 10 12:22:08 2011 -0400
+commit 69cbe8000a5123aab33fcb2441c1e136506964a0
+Author: Jason Etheridge <jason at esilibrary.com>
+Date:   Tue Jul 14 14:54:27 2015 -0400
 
-    Fix README typo: 'mod_offlinex'
+    LP#1474507: fix interval_to_seconds for weeks and seconds
     
-    mod_offline is not that x-treme.
+    This patch fixes an issue where OpenSRF::Utils::interval_to_seconds()
+    was not recognizing intervals expressed as seconds or weeks.
     
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Jason Etheridge <jason at esilibrary.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-1	1	README
+2	2	src/perl/lib/OpenSRF/Utils.pm
 
-commit 0725d1ddced0f16c351a5953f5fd3c14714cda1a
-Author: Dan Scott <dan at coffeecode.net>
-Date:   Thu Aug 25 11:41:19 2011 -0400
+commit 7a714ae480f238211b37fcdb248aecea93ece234
+Author: Jason Etheridge <jason at esilibrary.com>
+Date:   Tue Jul 14 15:10:15 2015 -0400
 
-    Don't define a variable inside a conditional block
-    
-    ./configure --disable-core --enable-javascript was dying with an error
-    due to CHECK_TESTS not being defined; move it outside the conditional
-    block so that we can ensure that it is defined as either yes or no.
+    LP#1474507: tests for interval_to_seconds
     
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
-
-8	9	configure.ac
-
-commit b24e90f1a1b1f2309ca3cdf0728cdd54f7822597
-Author: Dan Scott <dan at coffeecode.net>
-Date:   Mon Aug 22 09:49:45 2011 -0400
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-    Make distro targets in README match Makefile.install
-    
-    Swap ubuntu-karmic for ubuntu-lucid and pull fedora14 as it is really
-    close to end of life.
+16	0	src/perl/t/09-Utils-interval_to_seconds.t
+ create mode 100644 src/perl/t/09-Utils-interval_to_seconds.t
+
+commit 55807240854d0d532a5f70f1f483ed8086eb9d95
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Thu Sep 10 16:56:13 2015 -0400
+
+    LP#1494486: Limit damage caused by dropped drone XMPP sockets
+    
+    It is apparently possible for drones to get into a state where their XMPP
+    socket is closed but they don't notice. This is bad because the drone can
+    continue to receive requests from its listener but can no longer respond
+    to them. To limit the pain this can cause, we should kill the drone as soon
+    as we notice this condition.
+    
+    To avoid overhead, this commit notices when the socket returns an error (or
+    raises a signal, in Perl) upon write, and exits immediately.  One message
+    will be lost, but the drone will no longer be a black hole that does nothing
+    but absorb requests it can never fill.
+    
+    To test
+    -------
+    [1] Start an OpenSRF stack and look for a drone process.
+    [2] Use lsof to identify which socket that drone is using
+        to talk to XMPP.
+    [3] Use gdb to attach to the process and close the socket, e.g.,
+    
+        $ gdb -p $PID
+        (gdb) p close(11) # or whatever the socket number was
+        (gdb) c
+    
+    [4] Use srfsh to make requests of that service. Eventually, one
+        of them will hit the drone.
+    [5] Sans patch, the request will get handled by the drone, but
+        the results will never get sent, and the drone will remain
+        available to handle other requests.
+    [6] With the patch, the drone will exit when it discovers that it
+        can no longer write to the XMPP socket.
     
-    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
 
-2	2	README
+4	2	src/libopensrf/osrf_app_session.c
+5	0	src/perl/lib/OpenSRF/Transport/SlimJabber/XMPPReader.pm

commit fb50a71d11bb2865722a1625bad075ca7eaf2ef3
Author: Galen Charlton <gmc at esilibrary.com>
Date:   Wed Dec 7 16:55:23 2016 -0500

    update version numbers for 2.5.0-alpha
    
    Signed-off-by: Galen Charlton <gmc at esilibrary.com>

diff --git a/README b/README
index 995ad48..d573e9b 100644
--- a/README
+++ b/README
@@ -29,7 +29,7 @@ Issue the following commands as the *user* Linux account.
 +
 [source, bash]
 ------------------------------------------------------------------------------
-wget https://evergreen-ils.org/downloads/opensrf-OSRFVERSION.tar.gz
+wget https://evergreen-ils.org/downloads/opensrf-2.5.0-alpha.tar.gz
 ------------------------------------------------------------------------------
 +
 [NOTE]
@@ -40,8 +40,8 @@ http://git.evergreen-ils.org/?p=OpenSRF.git
 +
 [source, bash]
 ------------------------------------------------------------------------------
-tar -xvf opensrf-OSRFVERSION.tar.gz
-cd opensrf-OSRFVERSION/
+tar -xvf opensrf-2.5.0-alpha.tar.gz
+cd opensrf-2.5.0-alpha/
 ------------------------------------------------------------------------------
 
 Installing prerequisites
@@ -464,14 +464,14 @@ a2dismod websocket
 .(Debian)
 [source, bash]
 ---------------------------------------------------------------------------
-cd /path/to/opensrf-OSRFVERSION
+cd /path/to/opensrf-2.5.0-alpha
 cp examples/apache2/websockets/apache2.conf /etc/apache2-websockets/
 ---------------------------------------------------------------------------
 +
 .(Ubuntu Trusty / Xenial)
 [source, bash]
 ---------------------------------------------------------------------------
-cd /path/to/opensrf-OSRFVERSION
+cd /path/to/opensrf-2.5.0-alpha
 cp examples/apache_24/websockets/apache2.conf /etc/apache2-websockets/
 ---------------------------------------------------------------------------
 +
@@ -543,7 +543,7 @@ apt-get install nginx
 +
 [source, bash]
 ---------------------------------------------------------------------------
-cd /path/to/opensrf-OSRFVERSION
+cd /path/to/opensrf-2.5.0-alpha
 cp examples/nginx/osrf-ws-http-proxy /etc/nginx/sites-available/
 ln -s /etc/nginx/sites-available/osrf-ws-http-proxy /etc/nginx/sites-enabled/osrf-ws-http-proxy
 ---------------------------------------------------------------------------
@@ -597,7 +597,7 @@ apt-get install haproxy
 +
 [source, bash]
 ---------------------------------------------------------------------------
-cd /path/to/opensrf-OSRFVERSION
+cd /path/to/opensrf-2.5.0-alpha
 cat examples/haproxy/osrf-ws-http-proxy >> /etc/haproxy/haproxy.cfg
 ---------------------------------------------------------------------------
 +
diff --git a/src/perl/lib/OpenSRF.pm b/src/perl/lib/OpenSRF.pm
index b577ecd..c2b3556 100644
--- a/src/perl/lib/OpenSRF.pm
+++ b/src/perl/lib/OpenSRF.pm
@@ -16,7 +16,7 @@ Version 2.1.2
 
 =cut
 
-our $VERSION = "2.12";
+our $VERSION = "2.50_1";
 
 =head1 METHODS
 
diff --git a/src/python/setup.py b/src/python/setup.py
index c56df95..18909a8 100644
--- a/src/python/setup.py
+++ b/src/python/setup.py
@@ -3,7 +3,7 @@
 from setuptools import setup
 
 setup(name='OpenSRF',
-    version='2.1.0',
+    version='2.5.0-alpha',
     install_requires=[
         'dnspython', # required by pyxmpp
     	'python-memcached',
diff --git a/version.m4 b/version.m4
index 450ed42..944d7f0 100644
--- a/version.m4
+++ b/version.m4
@@ -1 +1 @@
-m4_define([VERSION_NUMBER],[2.1.2]) 
+m4_define([VERSION_NUMBER],[2.5.0-alpha]) 

commit fbfde6f6ca1fe8fed8b86c93f315a1110fb74512
Author: Galen Charlton <gmc at esilibrary.com>
Date:   Wed Dec 7 16:52:08 2016 -0500

    release notes for 2.5-alpha
    
    Signed-off-by: Galen Charlton <gmc at esilibrary.com>

diff --git a/doc/RELEASE_NOTES.txt b/doc/RELEASE_NOTES.txt
new file mode 100644
index 0000000..3c42366
--- /dev/null
+++ b/doc/RELEASE_NOTES.txt
@@ -0,0 +1,136 @@
+Release notes for OpenSRF 2.5.0-alpha
+=====================================
+
+Supported platforms
+-------------------
+The following Linux distributions are supported:
+
+  * Debian 7 (Wheezy) and 8 (Jessie)
+  * Fedora 17, 18
+  * Ubuntu 14.04 (Trusty Tahr) and 16.04 LTS (Xenial Xerus)
+
+New features in 2.5.0-alpha
+---------------------------
+
+Chunking and bundling (LP#1612771)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Message Bundling and Chunking
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+OpenSRF now supports message chunking, i.e., breaking up large OpenSRF
+messages across multiple XMPP envelopes. This is implemented with a
+new OpenSRF message type.
+
+C, Perl, and Javascript libraries are taught how to reconstruct chunked
+messages. The default chunking threshold is 50Kb, just a bit below the
+default ejabberd max stanza size of 64Kb.
+
+What was previously called chunking is now referred to as bundling:
+packing multiple OpenSRF messages together in a single XMPP envelope,
+as long as we believe more messages will be sent in the future and we
+are below some threshold of combined message size.  The default for
+that threshold is 25Kb.
+
+With this change, it is no longer necessary to change the `max_stanza_size`
+setting for ejabberd when installing OpenSRF.
+
+Pass client timezone to server (LP#1485371)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+OpenSRF has long inspected the envelope of incoming requests for information
+about the client's locale and made this information available to business
+logic.  This is used, among other things, to drive transparent translation of
+in-database strings within Evergreen.  In addition to locale, OpenSRF will
+now respect client-supplied adjustment to the effective time zone in which it
+operates, and provide that information to the business logic layer of
+applications built on the framework.
+
+Client
+^^^^^
+
+As most clients that have time zones which differ from that of the server on
+which the OpenSRF processes run are, in fact, web browsers, it is necessary
+to include time zone detection directly within the browser.  This will be
+stored in a cookie to be sent with all subsequent HTTP requests, and used in
+all OpenSRF-over-HTTP calls made using the JavaScript bindings for OpenSRF,
+including those for WebSockets communication.
+
+For non-browser clients, such as support scripts written in Perl or other
+scripting languages, the local system's mechanisms for detecting time zone
+is relied upon.  For instance, Perl scripts can directly read the TZ
+environment variable.
+
+Additionally, the srfsh client now reads its local time zone from the
+environment and passes that to the server. 
+
+Server
+^^^^^^
+
+Within OpenSRF services implemented in Perl, this information is now passed up
+to the business logic layer via the TZ environment variable, and is reverted
+to the server's value at the end of each request.  This allows automatic,
+transparent use of the client's time zone in almost all cases, and provides a
+system-normal access mechanism when direct access is required.
+
+For OpenSRF services implemented in C, the time zone information is provided
+as part of the request context object that is passed to implementation
+functions.  In particular, this allows services that interact with a database
+to set the time zone in which the database interprets timestamps to that of
+the client.
+
+Dispatch mode for method_lookup subrequests (LP#1631522)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+There is a pattern in the wild of using OpenSRF's `method_lookup()` facility
+to decide between one of several local methods when delegating to pre-existing
+logic.  Often times, we want to simply hand control over to another method,
+but the output of a subrequest's `run()` is an array of results.  The caller has
+to know if, and how, to restructure the result for the client.
+
+Instead, we can now call `dispatch()` instead of `run()` and have OpenSRF session
+control completely passed to the delegate code.  This way, the delegate code
+need not know anything about its caller, and vice versa.
+
+Example proxy server configurations (LP#1638651 and LP#1648188)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+OpenSRF 2.5 comes with example configurations for using HAProxy or
+NGINX as a reverse proxy for HTTP, HTTPS, and WebSockets traffic. This
+can be useful for Evergreen systems that wish to use port 443 for both
+HTTPS and secure WebSockets traffic.
+
+Allow admin to specify where perl modules will be installed (LP#1631520)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Add `--with-perlbase` option to the `configure` to specify
+an alternative location for installing the Perl modules. This
+can be useful for setups that want to run the Perl modules
+from a shared filesystem or environments that need to run
+multiple versions of OpenSRF simultaneously.
+
+Users of `--with-perlbase` are responsible for ensuring that
+`PERL5LIB` is set appropriately.
+
+Other changes
+-------------
+
+  * Drop support for Debian Squeeze (LP#1559121)
+  * Drop support for Ubuntu Precise (LP#1603708)
+  * Add support for Ubuntu Xenial (LP#1551090)
+  * Fix a bug with syslog configuration (LP#1473479)
+  * Fix OpenSRF debian_sys_config order for Debian (LP#1585041)
+  * Improvements to the installation documentation (LP#1382038)
+
+Acknowledgements
+----------------
+
+We would like to thank the following people who contributed to OpenSRF 2.5:
+
+  * Ben Shum 
+  * Bill Erickson 
+  * Chris Sharp 
+  * Galen Charlton 
+  * Jason Etheridge 
+  * Jason Stephenson 
+  * Mike Rylander 
+  * Remington Steed 

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog               | 1563 +++++++++++++++--------------------------------
 README                  |   14 +-
 doc/RELEASE_NOTES.txt   |  136 ++++
 src/perl/lib/OpenSRF.pm |    2 +-
 src/python/setup.py     |    2 +-
 version.m4              |    2 +-
 6 files changed, 627 insertions(+), 1092 deletions(-)
 create mode 100644 doc/RELEASE_NOTES.txt


hooks/post-receive
-- 
OpenSRF


More information about the opensrf-commits mailing list