Cmake: add and use find krb5 cmake module form nfs-ganesha project. Remove mac port explicit include and libraries directories, rely on cmake to find the appropriate compilation configuration instead.
Top level cmake: fix krb5 cmake module name capitalization.
Cmake krb5 module: do not add "${KRB5_PREFIX}/include" if KRB5_PREFIX is not defined or directory does not exit.
Test scripts: fix recovery text start only with no authentication.
Cmake: use static boost libraries with shared libraries by default, QFS_DONT_LINK_STATIC_BOOST_LIB can be used to override the default.
Cmake: allow to omit building qfs_fuse by adding -DQFS_OMIT_FUSE=ON to cmake command line. Use find library to find full path of each cmake library, with older cmake versions when find fuse module isn't used. Add cmake include directories to the project include directories to compile all code with exact same c++ definitions in order to avoid possible include directories order dependencies.
Cmake: convert fuse link options into library names with pkgconfig used with cmake 2.4.
Fuse: fix command line parsing.
Tools: implement cptoqfs read limit -- "-M" command line option. This mode is intended mainly for debugging, client file close while read ahead (and recovery) in flight.
Client library: fix reader close handling while recovery is in flight, by closing all [newly opened] chunk readers from striper completion in the case if close is pending and striper is idle.
Client library: implement "best effort" attempt to relinquish read lease on chunk reader shutdown by submitting and immediately canceling lease relinquish RPC. With meta server connection established and authenticated this should "put on the wire" the RPC request, the protocol state machine will discard the response for the canceled RPC. With no connection doing so will not relinquish the lease. In most cases the lease relinquish should work, except the cases where the meta server connection is closed due to "idle" timeout. While it is possible to create a new lease relinquish rpc with no "owner" to make lease release with re-connect, the connection idle timeout is comparable with the lease timeout, and presently file "overwrite" used rarely. Therefore, presently, the complexity increase, albeit minor, to create a new / "stadalone" RPC doesn't seem to be warranted.
Use reader shutdown instead of close in the kfs client's file descriptor close path to minimize "closing" time in the cases with in flight read ahead, especially when read ahead request has to be canceled waits for the chunk read(s) completion. The alternative to implement asynchronous chunk reader close seems less attractive as it might effectively increase number of open file descriptors in the cases where open / read / close frequency is high, and would require complexity increase.
Change kfs protocol state machine reply discard message level from info to debug, which seems more appropriate, and will reduce the chances of alarming users.
Top level cmake: allow to override find krb5 by setting explicitly KRB5_LIBRARIES, and KRB5_INCLUDE_DIRS if required.
Cmake: allow to override find JNI FUSE KRB5 OpenSSL by setting the corresponding *_FOUND, *_LIBRARIES *_INCLUDE_DIRS from cmake command line or for example, by "wrapping" top level cmake using cmake "include" directive.
Cmake: top level cmake minor code cleanup.