diff --git a/include/crm/cib.h b/include/crm/cib.h
index d366304112..c434611372 100644
--- a/include/crm/cib.h
+++ b/include/crm/cib.h
@@ -1,185 +1,185 @@
 /*
  * Copyright (C) 2004 Andrew Beekhof <andrew@beekhof.net>
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2 of the License, or (at your option) any later version.
  *
  * This software is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this library; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
 /**
  * \file
  * \brief Cluster Configuration
  * \ingroup cib
  */
 
 #ifndef CIB__H
 #  define CIB__H
 
 #  include <crm/common/ipc.h>
 #  include <crm/common/xml.h>
 
 #  define CIB_FEATURE_SET "2.0"
 
 /* use compare_version() for doing comparisons */
 
 enum cib_variant {
     cib_undefined,
     cib_native,
     cib_file,
     cib_remote,
     cib_database,
 };
 
 enum cib_state {
     cib_connected_command,
     cib_connected_query,
     cib_disconnected
 };
 
 enum cib_conn_type {
     cib_command,
     cib_query,
     cib_no_connection,
     cib_command_nonblocking,
 };
 
 /* *INDENT-OFF* */
 enum cib_call_options {
 	cib_none            = 0x00000000,
 	cib_verbose         = 0x00000001,
 	cib_xpath           = 0x00000002,
 	cib_multiple        = 0x00000004,
 	cib_can_create      = 0x00000008,
 	cib_discard_reply   = 0x00000010,
 	cib_no_children     = 0x00000020,
         cib_xpath_address   = 0x00000040,
         cib_mixed_update    = 0x00000080,
 	cib_scope_local     = 0x00000100,
 	cib_dryrun    	    = 0x00000200,
 	cib_sync_call       = 0x00001000,
 	cib_no_mtime        = 0x00002000,
 	cib_zero_copy       = 0x00004000,
 	cib_inhibit_notify  = 0x00010000,
  	cib_quorum_override = 0x00100000,
 	cib_inhibit_bcast   = 0x01000000, /* TODO: Remove */
 	cib_force_diff	    = 0x10000000
 };
 
 #define T_CIB_DIFF_NOTIFY	"cib_diff_notify"
 
 /* *INDENT-ON* */
 
 typedef struct cib_s cib_t;
 
 typedef struct cib_api_operations_s {
     int (*signon) (cib_t * cib, const char *name, enum cib_conn_type type);
     int (*signon_raw) (cib_t * cib, const char *name, enum cib_conn_type type, int *event_fd);
     int (*signoff) (cib_t * cib);
     int (*free) (cib_t * cib);
 
     int (*set_op_callback) (cib_t * cib, void (*callback) (const xmlNode * msg, int callid,
                                                            int rc, xmlNode * output));
 
     int (*add_notify_callback) (cib_t * cib, const char *event,
                                 void (*callback) (const char *event, xmlNode * msg));
 
     int (*del_notify_callback) (cib_t * cib, const char *event,
                                 void (*callback) (const char *event, xmlNode * msg));
 
     int (*set_connection_dnotify) (cib_t * cib, void (*dnotify) (gpointer user_data));
 
     int (*inputfd) (cib_t * cib);
 
     int (*noop) (cib_t * cib, int call_options);
     int (*ping) (cib_t * cib, xmlNode ** output_data, int call_options);
 
     int (*query) (cib_t * cib, const char *section, xmlNode ** output_data, int call_options);
     int (*query_from) (cib_t * cib, const char *host, const char *section,
                        xmlNode ** output_data, int call_options);
 
     int (*is_master) (cib_t * cib);
     int (*set_master) (cib_t * cib, int call_options);
     int (*set_slave) (cib_t * cib, int call_options);
     int (*set_slave_all) (cib_t * cib, int call_options);
 
     int (*sync) (cib_t * cib, const char *section, int call_options);
     int (*sync_from) (cib_t * cib, const char *host, const char *section, int call_options);
 
     int (*upgrade) (cib_t * cib, int call_options);
     int (*bump_epoch) (cib_t * cib, int call_options);
 
     int (*create) (cib_t * cib, const char *section, xmlNode * data, int call_options);
     int (*modify) (cib_t * cib, const char *section, xmlNode * data, int call_options);
     int (*update) (cib_t * cib, const char *section, xmlNode * data, int call_options);
     int (*replace) (cib_t * cib, const char *section, xmlNode * data, int call_options);
     int (*delete) (cib_t * cib, const char *section, xmlNode * data, int call_options);
 
     int (*erase) (cib_t * cib, xmlNode ** output_data, int call_options);
     int (*delete_absolute) (cib_t * cib, const char *section, xmlNode * data, int call_options);
 
     int (*quit) (cib_t * cib, int call_options);
 
     int (*register_notification) (cib_t * cib, const char *callback, int enabled);
 
      gboolean(*register_callback) (cib_t * cib, int call_id, int timeout, gboolean only_success,
                                    void *user_data, const char *callback_name,
                                    void (*callback) (xmlNode *, int, int, xmlNode *, void *));
 
     gboolean (*register_callback_full)(cib_t *cib, int call_id, int timeout,
                                        gboolean only_success, void *user_data,
                                        const char *callback_name,
                                        void (*callback)(xmlNode *, int, int,
                                                         xmlNode *, void *),
                                        void (*free_func)(void *));
 
 } cib_api_operations_t;
 
 struct cib_s {
     enum cib_state state;
     enum cib_conn_type type;
     enum cib_variant variant;
 
     int call_id;
     int call_timeout;
     void *variant_opaque;
     void *delegate_fn;
 
     GList *notify_list;
     void (*op_callback) (const xmlNode * msg, int call_id, int rc, xmlNode * output);
 
     cib_api_operations_t *cmds;
 };
 
 /* Core functions */
 cib_t *cib_new(void);
 cib_t *cib_native_new(void);
 cib_t *cib_file_new(const char *filename);
 cib_t *cib_remote_new(const char *server, const char *user, const char *passwd, int port,
                       gboolean encrypted);
 
 cib_t *cib_new_no_shadow(void);
 char *get_shadow_file(const char *name);
 cib_t *cib_shadow_new(const char *name);
 
 void cib_free_callbacks(cib_t *cib);
 void cib_delete(cib_t * cib);
 
 void cib_dump_pending_callbacks(void);
 int num_cib_op_callbacks(void);
 void remove_cib_op_callback(int call_id, gboolean all_callbacks);
 
 #  include <crm/cib/util.h>
 
-#  define CIB_LIBRARY "libcib.so.4"
+#  define CIB_LIBRARY "libcib.so.6"
 
 #endif
diff --git a/include/crm/stonith-ng.h b/include/crm/stonith-ng.h
index 7bb9c788d5..2a696066dc 100644
--- a/include/crm/stonith-ng.h
+++ b/include/crm/stonith-ng.h
@@ -1,480 +1,480 @@
 /*
  * Copyright (C) 2004 Andrew Beekhof <andrew@beekhof.net>
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2 of the License, or (at your option) any later version.
  *
  * This software is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this library; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
 /**
  * \file
  * \brief Fencing aka. STONITH
  * \ingroup fencing
  */
 
 #ifndef STONITH_NG__H
 #  define STONITH_NG__H
 
 #  include <dlfcn.h>
 #  include <errno.h>
 #  include <stdbool.h>
 
 /* TO-DO: Work out how to drop this requirement */
 #  include <libxml/tree.h>
 
 #  define T_STONITH_NOTIFY_DISCONNECT     "st_notify_disconnect"
 #  define T_STONITH_NOTIFY_FENCE          "st_notify_fence"
 
 /* *INDENT-OFF* */
 enum stonith_state {
     stonith_connected_command,
     stonith_connected_query,
     stonith_disconnected,
 };
 
 enum stonith_call_options {
     st_opt_none            = 0x00000000,
     st_opt_verbose         = 0x00000001,
     st_opt_allow_suicide   = 0x00000002,
 
     st_opt_manual_ack      = 0x00000008,
     st_opt_discard_reply   = 0x00000010,
 /*    st_opt_all_replies     = 0x00000020, */
     st_opt_topology        = 0x00000040,
     st_opt_scope_local     = 0x00000100,
     st_opt_cs_nodeid       = 0x00000200,
     st_opt_sync_call       = 0x00001000,
     /*! Allow the timeout period for a callback to be adjusted
      *  based on the time the server reports the operation will take. */
     st_opt_timeout_updates = 0x00002000,
     /*! Only report back if operation is a success in callback */
     st_opt_report_only_success = 0x00004000,
 };
 
 /*! Order matters here, do not change values */
 enum op_state
 {
     st_query,
     st_exec,
     st_done,
     st_duplicate,
     st_failed,
 };
 
 typedef struct stonith_key_value_s {
     char *key;
     char *value;
         struct stonith_key_value_s *next;
 } stonith_key_value_t;
 
 typedef struct stonith_history_s {
     char *target;
     char *action;
     char *origin;
     char *delegate;
     int completed;
     int state;
 
     struct stonith_history_s *next;
     char *client;
 } stonith_history_t;
 
 typedef struct stonith_s stonith_t;
 
 typedef struct stonith_event_s
 {
     char *id;
     char *type;
     char *message;
     char *operation;
 
     int result;
     char *origin;
     char *target;
     char *action;
     char *executioner;
 
     char *device;
 
     /*! The name of the client that initiated the action. */
     char *client_origin;
 
 } stonith_event_t;
 
 typedef struct stonith_callback_data_s
 {
     int rc;
     int call_id;
     void *userdata;
 } stonith_callback_data_t;
 
 typedef struct stonith_api_operations_s
 {
     /*!
      * \brief Destroy the stonith api structure.
      */
     int (*free) (stonith_t *st);
 
     /*!
      * \brief Connect to the local stonith daemon.
      *
      * \retval 0, success
      * \retval negative error code on failure
      */
     int (*connect) (stonith_t *st, const char *name, int *stonith_fd);
 
     /*!
      * \brief Disconnect from the local stonith daemon.
      *
      * \retval 0, success
      * \retval negative error code on failure
      */
     int (*disconnect)(stonith_t *st);
 
     /*!
      * \brief Remove a registered stonith device with the local stonith daemon.
      *
      * \note Synchronous, guaranteed to occur in daemon before function returns.
      *
      * \retval 0, success
      * \retval negative error code on failure
      */
     int (*remove_device)(
         stonith_t *st, int options, const char *name);
 
     /*!
      * \brief Register a stonith device with the local stonith daemon.
      *
      * \note Synchronous, guaranteed to occur in daemon before function returns.
      *
      * \retval 0, success
      * \retval negative error code on failure
      */
     int (*register_device)(
         stonith_t *st, int options, const char *id,
         const char *namespace, const char *agent, stonith_key_value_t *params);
 
     /*!
      * \brief Remove a fencing level for a specific node.
      *
      * \note This feature is not available when stonith is in standalone mode.
      *
      * \retval 0, success
      * \retval negative error code on failure
      */
     int (*remove_level)(
         stonith_t *st, int options, const char *node, int level);
 
     /*!
      * \brief Register a fencing level containing the fencing devices to be used
      *        at that level for a specific node.
      *
      * \note This feature is not available when stonith is in standalone mode.
      *
      * \retval 0, success
      * \retval negative error code on failure
      */
     int (*register_level)(
         stonith_t *st, int options, const char *node, int level, stonith_key_value_t *device_list);
 
     /*!
      * \brief Get the metadata documentation for a resource.
      *
      * \note Value is returned in output.  Output must be freed when set.
      *
      * \retval 0 success
      * \retval negative error code on failure
      */
     int (*metadata)(stonith_t *st, int options,
             const char *device, const char *namespace, char **output, int timeout);
 
     /*!
      * \brief Retrieve a list of installed stonith agents
      *
      * \note if namespace is not provided, all known agents will be returned
      * \note list must be freed using stonith_key_value_freeall()
      * \note call_options parameter is not used, it is reserved for future use.
      *
      * \retval num items in list on success
      * \retval negative error code on failure
      */
     int (*list_agents)(stonith_t *stonith, int call_options, const char *namespace,
             stonith_key_value_t **devices, int timeout);
 
     /*!
      * \brief Retrieve string listing hosts and port assignments from a local stonith device.
      *
      * \retval 0 on success
      * \retval negative error code on failure
      */
     int (*list)(stonith_t *st, int options, const char *id, char **list_output, int timeout);
 
     /*!
      * \brief Check to see if a local stonith device is reachable
      *
      * \retval 0 on success
      * \retval negative error code on failure
      */
     int (*monitor)(stonith_t *st, int options, const char *id, int timeout);
 
     /*!
      * \brief Check to see if a local stonith device's port is reachable
      *
      * \retval 0 on success
      * \retval negative error code on failure
      */
     int (*status)(stonith_t *st, int options, const char *id, const char *port, int timeout);
 
     /*!
      * \brief Retrieve a list of registered stonith devices.
      *
      * \note If node is provided, only devices that can fence the node id
      *       will be returned.
      *
      * \retval num items in list on success
      * \retval negative error code on failure
      */
     int (*query)(stonith_t *st, int options, const char *node,
             stonith_key_value_t **devices, int timeout);
 
     /*!
      * \brief Issue a fencing action against a node.
      *
      * \note Possible actions are, 'on', 'off', and 'reboot'.
      *
      * \param st, stonith connection
      * \param options, call options
      * \param node, The target node to fence
      * \param action, The fencing action to take
      * \param timeout, The default per device timeout to use with each device
      *                 capable of fencing the target.
      *
      * \retval 0 success
      * \retval negative error code on failure.
      */
     int (*fence)(stonith_t *st, int options, const char *node, const char *action,
                  int timeout, int tolerance);
 
     /*!
      * \brief Manually confirm that a node is down.
      *
      * \retval 0 success
      * \retval negative error code on failure.
      */
     int (*confirm)(stonith_t *st, int options, const char *node);
 
     /*!
      * \brief Retrieve a list of fencing operations that have occurred for a specific node.
      *
      * \note History is not available in standalone mode.
      *
      * \retval 0 success
      * \retval negative error code on failure.
      */
     int (*history)(stonith_t *st, int options, const char *node, stonith_history_t **output, int timeout);
 
     int (*register_notification)(
         stonith_t *st, const char *event,
         void (*notify)(stonith_t *st, stonith_event_t *e));
     int (*remove_notification)(stonith_t *st, const char *event);
 
     /*!
      * \brief Register a callback to receive the result of an async call id
      *
      * \param call_id, The call id to register the callback for.
      * \param timeout, The default timeout period to wait until this callback expires
      * \param options, Option flags, st_opt_timeout_updates and st_opt_report_only_success are the
      *                 only valid options for this function.
      * \param userdate, A pointer that will be handed back in the callback.
      * \param callback_name, Unique name given to callback
      * \param callback, The callback function
      *
      * \retval 0 success
      * \retval negative error code on failure.
      */
     int (*register_callback)(stonith_t *st,
         int call_id,
         int timeout,
         int options,
         void *userdata,
         const char *callback_name,
         void (*callback)(stonith_t *st, stonith_callback_data_t *data));
 
     /*!
      * \brief Remove a registered callback for a given call id.
      */
     int (*remove_callback)(stonith_t *st, int call_id, bool all_callbacks);
 
     /*!
      * \brief Remove fencing level for specific node, node regex or attribute
      *
      * \param[in] st      Stonithd connection to use
      * \param[in] options Bitmask of stonith_call_options to pass to stonithd
      * \param[in] node    If not NULL, target level by this node name
      * \param[in] pattern If not NULL, target by node name using this regex
      * \param[in] attr    If not NULL, target by this node attribute
      * \param[in] value   If not NULL, target by this node attribute value
      * \param[in] level   Index number of level to remove
      *
      * \return 0 on success, negative error code otherwise
      *
      * \note This feature is not available when stonith is in standalone mode.
      *       The caller should set only one of node, pattern or attr/value.
      */
     int (*remove_level_full)(stonith_t *st, int options,
                              const char *node, const char *pattern,
                              const char *attr, const char *value, int level);
 
     /*!
      * \brief Register fencing level for specific node, node regex or attribute
      *
      * \param[in] st          Stonithd connection to use
      * \param[in] options     Bitmask of stonith_call_options to pass to stonithd
      * \param[in] node        If not NULL, target level by this node name
      * \param[in] pattern     If not NULL, target by node name using this regex
      * \param[in] attr        If not NULL, target by this node attribute
      * \param[in] value       If not NULL, target by this node attribute value
      * \param[in] level       Index number of level to add
      * \param[in] device_list Devices to use in level
      *
      * \return 0 on success, negative error code otherwise
      *
      * \note This feature is not available when stonith is in standalone mode.
      *       The caller should set only one of node, pattern or attr/value.
      */
     int (*register_level_full)(stonith_t *st, int options,
                                const char *node, const char *pattern,
                                const char *attr, const char *value,
                                int level, stonith_key_value_t *device_list);
 
 } stonith_api_operations_t;
 
 struct stonith_s
 {
     enum stonith_state state;
 
     int call_id;
     int call_timeout;
     void *private;
 
     stonith_api_operations_t *cmds;
 };
 /* *INDENT-ON* */
 
 /* Core functions */
 stonith_t *stonith_api_new(void);
 void stonith_api_delete(stonith_t * st);
 
 void stonith_dump_pending_callbacks(stonith_t * st);
 
 const char *get_stonith_provider(const char *agent, const char *provider);
 
 bool stonith_dispatch(stonith_t * st);
 
 stonith_key_value_t *stonith_key_value_add(stonith_key_value_t * kvp, const char *key,
                                            const char *value);
 void stonith_key_value_freeall(stonith_key_value_t * kvp, int keys, int values);
 
 /* Basic helpers that allows nodes to be fenced and the history to be
  * queried without mainloop or the caller understanding the full API
  *
  * At least one of nodeid and uname are required
  */
 int stonith_api_kick(uint32_t nodeid, const char *uname, int timeout, bool off);
 time_t stonith_api_time(uint32_t nodeid, const char *uname, bool in_progress);
 
 /*
  * Helpers for using the above functions without install-time dependencies
  *
  * Usage:
  *  #include <crm/stonith-ng.h>
  *
  * To turn a node off by corosync nodeid:
  *  stonith_api_kick_helper(nodeid, 120, 1);
  *
  * To check the last fence date/time (also by nodeid):
  *  last = stonith_api_time_helper(nodeid, 0);
  *
  * To check if fencing is in progress:
  *  if(stonith_api_time_helper(nodeid, 1) > 0) { ... }
  *
  * eg.
 
  #include <stdio.h>
  #include <time.h>
  #include <crm/stonith-ng.h>
  int
  main(int argc, char ** argv)
  {
      int rc = 0;
      int nodeid = 102;
 
      rc = stonith_api_time_helper(nodeid, 0);
      printf("%d last fenced at %s\n", nodeid, ctime(rc));
 
      rc = stonith_api_kick_helper(nodeid, 120, 1);
      printf("%d fence result: %d\n", nodeid, rc);
 
      rc = stonith_api_time_helper(nodeid, 0);
      printf("%d last fenced at %s\n", nodeid, ctime(rc));
 
      return 0;
  }
 
  */
 
-#  define STONITH_LIBRARY "libstonithd.so.2"
+#  define STONITH_LIBRARY "libstonithd.so.5"
 
 static inline int
 stonith_api_kick_helper(uint32_t nodeid, int timeout, bool off)
 {
     static void *st_library = NULL;
     static int (*st_kick_fn) (int nodeid, const char *uname, int timeout, bool off) = NULL;
 
     if (st_library == NULL) {
         st_library = dlopen(STONITH_LIBRARY, RTLD_LAZY);
     }
     if (st_library && st_kick_fn == NULL) {
         st_kick_fn = dlsym(st_library, "stonith_api_kick");
     }
     if (st_kick_fn == NULL) {
 #ifdef ELIBACC
         return -ELIBACC;
 #else
         return -ENOSYS;
 #endif
     }
 
     return (*st_kick_fn) (nodeid, NULL, timeout, off);
 }
 
 static inline time_t
 stonith_api_time_helper(uint32_t nodeid, bool in_progress)
 {
     static void *st_library = NULL;
     static time_t(*st_time_fn) (int nodeid, const char *uname, bool in_progress) = NULL;
 
     if (st_library == NULL) {
         st_library = dlopen(STONITH_LIBRARY, RTLD_LAZY);
     }
     if (st_library && st_time_fn == NULL) {
         st_time_fn = dlsym(st_library, "stonith_api_time");
     }
     if (st_time_fn == NULL) {
         return 0;
     }
 
     return (*st_time_fn) (nodeid, NULL, in_progress);
 }
 
 #endif
diff --git a/lib/cib/Makefile.am b/lib/cib/Makefile.am
index a0abf3b030..044b73704a 100644
--- a/lib/cib/Makefile.am
+++ b/lib/cib/Makefile.am
@@ -1,37 +1,37 @@
 #
 # Copyright (C) 2004 Andrew Beekhof
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License
 # as published by the Free Software Foundation; either version 2
 # of the License, or (at your option) any later version.
 # 
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #
 include $(top_srcdir)/Makefile.common
 
 ## libraries
 lib_LTLIBRARIES		= libcib.la
 
 ## SOURCES
 libcib_la_SOURCES	= cib_ops.c cib_utils.c cib_client.c cib_native.c cib_attrs.c
 libcib_la_SOURCES	+= cib_file.c cib_remote.c
 
-libcib_la_LDFLAGS	= -version-info 5:4:1
+libcib_la_LDFLAGS	= -version-info 6:0:0
 libcib_la_CPPFLAGS	= -I$(top_srcdir) $(AM_CPPFLAGS)
 
 libcib_la_CFLAGS	= $(CFLAGS_HARDENED_LIB)
 libcib_la_LDFLAGS	+= $(LDFLAGS_HARDENED_LIB)
 
 libcib_la_LIBADD	= $(top_builddir)/lib/pengine/libpe_rules.la \
 			  $(top_builddir)/lib/common/libcrmcommon.la
 
 clean-generic:
 	rm -f *.log *.debug *.xml *~
diff --git a/lib/cluster/Makefile.am b/lib/cluster/Makefile.am
index 9f2d82a4e9..4558bb2ce9 100644
--- a/lib/cluster/Makefile.am
+++ b/lib/cluster/Makefile.am
@@ -1,36 +1,36 @@
 #
 # Copyright (C) 2004 Andrew Beekhof
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License
 # as published by the Free Software Foundation; either version 2
 # of the License, or (at your option) any later version.
 # 
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #
 include $(top_srcdir)/Makefile.common
 
 ## libraries
 lib_LTLIBRARIES	= libcrmcluster.la 
 
-libcrmcluster_la_LDFLAGS = -version-info 7:1:3
+libcrmcluster_la_LDFLAGS = -version-info 8:0:0
 
 libcrmcluster_la_CFLAGS  = $(CFLAGS_HARDENED_LIB)
 libcrmcluster_la_LDFLAGS += $(LDFLAGS_HARDENED_LIB)
 
 libcrmcluster_la_LIBADD  = $(top_builddir)/lib/common/libcrmcommon.la $(top_builddir)/lib/fencing/libstonithd.la $(CLUSTERLIBS)
 
 libcrmcluster_la_SOURCES = election.c cluster.c membership.c
 if BUILD_CS_SUPPORT
 libcrmcluster_la_SOURCES += cpg.c corosync.c
 endif
 
 clean-generic:
 	rm -f *.log *.debug *.xml *~
diff --git a/lib/common/Makefile.am b/lib/common/Makefile.am
index 7dae2d0a97..09122115bc 100644
--- a/lib/common/Makefile.am
+++ b/lib/common/Makefile.am
@@ -1,50 +1,50 @@
 #
 # Copyright (C) 2004 Andrew Beekhof
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License
 # as published by the Free Software Foundation; either version 2
 # of the License, or (at your option) any later version.
 # 
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #
 include $(top_srcdir)/Makefile.common
 
 AM_CPPFLAGS		+= -I$(top_builddir)/lib/gnu -I$(top_srcdir)/lib/gnu
 
 ## libraries
 lib_LTLIBRARIES	= libcrmcommon.la
 
 # Can't use -Wcast-qual here because glib insists on pretending things are const  
 # when they're not and thus we need the crm_element_value_const() hack
 
 # s390 needs -fPIC 
 # s390-suse-linux/bin/ld: .libs/ipc.o: relocation R_390_PC32DBL against `__stack_chk_fail@@GLIBC_2.4' can not be used when making a shared object; recompile with -fPIC
 
 CFLAGS		= $(CFLAGS_COPY:-Wcast-qual=) -fPIC
 
-libcrmcommon_la_LDFLAGS	= -version-info 11:0:8
+libcrmcommon_la_LDFLAGS	= -version-info 12:0:0
 
 libcrmcommon_la_CFLAGS	= $(CFLAGS_HARDENED_LIB)
 libcrmcommon_la_LDFLAGS	+= $(LDFLAGS_HARDENED_LIB)
 
 libcrmcommon_la_LIBADD	= @LIBADD_DL@ $(GNUTLSLIBS)
 
 libcrmcommon_la_SOURCES	= compat.c digest.c ipc.c io.c procfs.c utils.c xml.c	\
 			  iso8601.c remote.c mainloop.c logging.c watchdog.c	\
 			  schemas.c strings.c xpath.c attrd_client.c alerts.c	\
 			  operations.c results.c
 if BUILD_CIBSECRETS
 libcrmcommon_la_SOURCES	+= cib_secrets.c
 endif
 libcrmcommon_la_SOURCES	+= $(top_builddir)/lib/gnu/md5.c
 
 clean-generic:
 	rm -f *.log *.debug *.xml *~
diff --git a/lib/fencing/Makefile.am b/lib/fencing/Makefile.am
index da1ec37b8f..cdf01d74e1 100644
--- a/lib/fencing/Makefile.am
+++ b/lib/fencing/Makefile.am
@@ -1,29 +1,29 @@
 #  File: Makefile.am
 #  Author: Sun Jiang Dong <sunjd@cn.ibm.com>
 #  Copyright (c) 2004 International Business Machines
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License
 # as published by the Free Software Foundation; either version 2
 # of the License, or (at your option) any later version.
 # 
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #
 include $(top_srcdir)/Makefile.common
 
 lib_LTLIBRARIES		= libstonithd.la
 
-libstonithd_la_LDFLAGS	= -version-info 4:4:2
+libstonithd_la_LDFLAGS	= -version-info 5:0:0
 
 libstonithd_la_CFLAGS	= $(CFLAGS_HARDENED_LIB)
 libstonithd_la_LDFLAGS	+= $(LDFLAGS_HARDENED_LIB)
 
 libstonithd_la_LIBADD	= $(top_builddir)/lib/common/libcrmcommon.la
 libstonithd_la_SOURCES	= st_client.c
diff --git a/lib/lrmd/Makefile.am b/lib/lrmd/Makefile.am
index 8e5e4761b4..ecaeb20539 100644
--- a/lib/lrmd/Makefile.am
+++ b/lib/lrmd/Makefile.am
@@ -1,29 +1,29 @@
 # Copyright (c) 2012 David Vossel <davidvossel@gmail.com>
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
 # version 2.1 of the License, or (at your option) any later version.
 # 
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 # Lesser General Public License for more details.
 # 
 # You should have received a copy of the GNU Lesser General Public
 # License along with this library; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 #
 include $(top_srcdir)/Makefile.common
 
 lib_LTLIBRARIES		= liblrmd.la
 
-liblrmd_la_LDFLAGS	= -version-info 6:0:5
+liblrmd_la_LDFLAGS	= -version-info 7:0:0
 
 liblrmd_la_CFLAGS	= $(CFLAGS_HARDENED_LIB)
 liblrmd_la_LDFLAGS	+= $(LDFLAGS_HARDENED_LIB)
 
 liblrmd_la_LIBADD	= $(top_builddir)/lib/common/libcrmcommon.la	\
 			$(top_builddir)/lib/services/libcrmservice.la	\
 			$(top_builddir)/lib/fencing/libstonithd.la
 liblrmd_la_SOURCES	= lrmd_client.c proxy_common.c lrmd_alerts.c
diff --git a/lib/pengine/Makefile.am b/lib/pengine/Makefile.am
index 8aceccc707..1e58e5958d 100644
--- a/lib/pengine/Makefile.am
+++ b/lib/pengine/Makefile.am
@@ -1,44 +1,44 @@
 #
 # Copyright (C) 2004 Andrew Beekhof
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License
 # as published by the Free Software Foundation; either version 2
 # of the License, or (at your option) any later version.
 # 
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #
 include $(top_srcdir)/Makefile.common
 
 ## libraries
 lib_LTLIBRARIES		= libpe_rules.la libpe_status.la
 
 ## SOURCES
 noinst_HEADERS		= unpack.h variant.h
 
-libpe_rules_la_LDFLAGS	= -version-info 5:0:3
+libpe_rules_la_LDFLAGS	= -version-info 5:1:3
 
 libpe_rules_la_CFLAGS	= $(CFLAGS_HARDENED_LIB)
 libpe_rules_la_LDFLAGS	+= $(LDFLAGS_HARDENED_LIB)
 
 libpe_rules_la_LIBADD	= $(top_builddir)/lib/common/libcrmcommon.la
 libpe_rules_la_SOURCES	= rules.c rules_alerts.c common.c
 
-libpe_status_la_LDFLAGS	= -version-info 14:0:4
+libpe_status_la_LDFLAGS	= -version-info 15:0:0
 
 libpe_status_la_CFLAGS	= $(CFLAGS_HARDENED_LIB)
 libpe_status_la_LDFLAGS	+= $(LDFLAGS_HARDENED_LIB)
 
 libpe_status_la_LIBADD	= @CURSESLIBS@ $(top_builddir)/lib/common/libcrmcommon.la
 libpe_status_la_SOURCES	= status.c unpack.c utils.c complex.c native.c container.c \
 			group.c clone.c rules.c common.c failcounts.c remote.c
 
 clean-generic:
 	rm -f *.log *.debug *~
diff --git a/lib/services/Makefile.am b/lib/services/Makefile.am
index a416f1369e..4c36112b85 100644
--- a/lib/services/Makefile.am
+++ b/lib/services/Makefile.am
@@ -1,44 +1,44 @@
 # Copyright (c) 2012 David Vossel <davidvossel@gmail.com>
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
 # version 2.1 of the License, or (at your option) any later version.
 # 
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 # Lesser General Public License for more details.
 # 
 # You should have received a copy of the GNU Lesser General Public
 # License along with this library; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 #
 #
 
 MAINTAINERCLEANFILES = Makefile.in
 
 AM_CPPFLAGS			= -I$(top_srcdir)/include
 
 lib_LTLIBRARIES			= libcrmservice.la
 noinst_HEADERS			= pcmk-dbus.h upstart.h systemd.h services_private.h
 
-libcrmservice_la_LDFLAGS	= -version-info 6:0:3
+libcrmservice_la_LDFLAGS	= -version-info 7:0:0
 libcrmservice_la_CPPFLAGS	= -DOCF_ROOT_DIR=\"@OCF_ROOT_DIR@\" $(AM_CPPFLAGS)
 libcrmservice_la_CFLAGS		= $(GIO_CFLAGS)
 
 libcrmservice_la_CFLAGS		+= $(CFLAGS_HARDENED_LIB)
 libcrmservice_la_LDFLAGS	+= $(LDFLAGS_HARDENED_LIB)
 
 libcrmservice_la_LIBADD		= $(GIO_LIBS) $(top_builddir)/lib/common/libcrmcommon.la $(DBUS_LIBS)
 
 libcrmservice_la_SOURCES	= services.c services_linux.c
 if BUILD_DBUS
 libcrmservice_la_SOURCES	+= dbus.c
 endif
 if BUILD_UPSTART
 libcrmservice_la_SOURCES	+= upstart.c
 endif
 if BUILD_SYSTEMD
 libcrmservice_la_SOURCES	+= systemd.c
 endif
diff --git a/lib/transition/Makefile.am b/lib/transition/Makefile.am
index 304837edf6..16948f8867 100644
--- a/lib/transition/Makefile.am
+++ b/lib/transition/Makefile.am
@@ -1,35 +1,35 @@
 #
 # Copyright (C) 2004 Andrew Beekhof
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License
 # as published by the Free Software Foundation; either version 2
 # of the License, or (at your option) any later version.
 # 
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #
 include $(top_srcdir)/Makefile.common
 
 ## libraries
 lib_LTLIBRARIES			= libtransitioner.la
 
 ## SOURCES
 
-libtransitioner_la_LDFLAGS	= -version-info 3:0:1
+libtransitioner_la_LDFLAGS	= -version-info 4:0:0
 libtransitioner_la_CPPFLAGS	= -I$(top_builddir) $(AM_CPPFLAGS)
 
 libtransitioner_la_CFLAGS	= $(CFLAGS_HARDENED_LIB)
 libtransitioner_la_LDFLAGS	+= $(LDFLAGS_HARDENED_LIB)
 
 libtransitioner_la_LIBADD	= $(top_builddir)/lib/common/libcrmcommon.la
 libtransitioner_la_SOURCES	= unpack.c graph.c utils.c
 
 clean-generic:
 	rm -f *~
diff --git a/pengine/Makefile.am b/pengine/Makefile.am
index dc9086006d..c05120db1d 100644
--- a/pengine/Makefile.am
+++ b/pengine/Makefile.am
@@ -1,68 +1,68 @@
 #
 # Copyright (C) 2004 Andrew Beekhof
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License
 # as published by the Free Software Foundation; either version 2
 # of the License, or (at your option) any later version.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #
 include $(top_srcdir)/Makefile.common
 
 AM_CPPFLAGS	+= -I$(top_builddir) -I$(top_srcdir)
 
 halibdir	= $(CRM_DAEMON_DIR)
 
 COMMONLIBS	= $(top_builddir)/lib/common/libcrmcommon.la	\
 		$(top_builddir)/lib/pengine/libpe_status.la	\
 		libpengine.la
 
 ## libraries
 lib_LTLIBRARIES	= libpengine.la
 
 ## binary progs
 halib_PROGRAMS	= pengine
 
 if BUILD_XML_HELP
 man7_MANS =	pengine.7
 endif
 
 ## SOURCES
 
 noinst_HEADERS	= allocate.h notif.h utils.h pengine.h
 
-libpengine_la_LDFLAGS	= -version-info 14:0:4
+libpengine_la_LDFLAGS	= -version-info 15:0:0
 
 libpengine_la_CFLAGS	= $(CFLAGS_HARDENED_LIB)
 libpengine_la_LDFLAGS	+= $(LDFLAGS_HARDENED_LIB)
 
 libpengine_la_LIBADD	= $(top_builddir)/lib/pengine/libpe_status.la \
 			$(top_builddir)/lib/cib/libcib.la
 # -L$(top_builddir)/lib/pils -lpils -export-dynamic -module -avoid-version
 libpengine_la_SOURCES	= pengine.c allocate.c notif.c utils.c constraints.c \
 			native.c group.c clone.c pe_promotable.c graph.c \
 			utilization.c container.c
 
 pengine_CFLAGS	= $(CFLAGS_HARDENED_EXE)
 pengine_LDFLAGS	= $(LDFLAGS_HARDENED_EXE)
 pengine_LDADD	= $(top_builddir)/lib/cib/libcib.la $(COMMONLIBS)
 # libcib for get_object_root()
 pengine_SOURCES	= main.c
 
 install-exec-local:
 	$(mkinstalldirs) $(DESTDIR)/$(PE_STATE_DIR)
 	-chown $(CRM_DAEMON_USER) $(DESTDIR)/$(PE_STATE_DIR)
 	-chgrp $(CRM_DAEMON_GROUP) $(DESTDIR)/$(PE_STATE_DIR)
 	-chmod 750 $(DESTDIR)/$(PE_STATE_DIR)
 
 uninstall-local:
 
 CLEANFILES = $(man7_MANS)