removed merge fluff
[sahlberg/ctdb.git] / packaging / RPM / ctdb.spec
index 070f96737aa9e69e615023ee09de4e7f07f66718..6c628c3c72361f7edbac0acf66a608d270d44812 100644 (file)
@@ -4,8 +4,8 @@ Summary: Clustered TDB
 Vendor: Samba Team
 Packager: Samba Team <samba@samba.org>
 Name: ctdb
-Version: 1.0
-Release: 58
+Version: 1.0.80
+Release: 1
 Epoch: 0
 License: GNU GPL version 3
 Group: System Environment/Daemons
@@ -34,7 +34,14 @@ ctdb is the clustered database used by samba
 
 %build
 
-CC="gcc"
+## check for ccache
+if ccache -h >/dev/null 2>&1 ; then
+       CC="ccache gcc"
+else
+       CC="gcc"
+fi
+
+export CC
 
 ## always run autogen.sh
 ./autogen.sh
@@ -45,8 +52,8 @@ CFLAGS="$RPM_OPT_FLAGS $EXTRA -O0 -D_GNU_SOURCE -DCTDB_VERS=\"%{version}-%{relea
        --mandir=%{_mandir} \
        --localstatedir="/var"
 
-make showflags
-make   
+make docdir=%{_docdir} showflags
+make docdir=%{_docdir}
 
 %install
 # Clean up in case there is trash left from a previous build
@@ -56,7 +63,7 @@ rm -rf $RPM_BUILD_ROOT
 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/init.d
 
-make DESTDIR=$RPM_BUILD_ROOT install
+make DESTDIR=$RPM_BUILD_ROOT docdir=%{_docdir} install
 
 install -m644 config/ctdb.sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/ctdb
 install -m755 config/ctdb.init $RPM_BUILD_ROOT%{initdir}/ctdb
@@ -90,12 +97,16 @@ fi
 %defattr(-,root,root)
 
 %config(noreplace) %{_sysconfdir}/sysconfig/ctdb
+%config(noreplace) %{_sysconfdir}/ctdb/notify.sh
 %config(noreplace) %{_sysconfdir}/ctdb/functions
 %attr(755,root,root) %{initdir}/ctdb
 
 %{_docdir}/ctdb/README.eventscripts
+%{_docdir}/ctdb/recovery-process.txt
 %{_sysconfdir}/ctdb/events.d/00.ctdb
 %{_sysconfdir}/ctdb/events.d/10.interface
+%{_sysconfdir}/ctdb/events.d/11.natgw
+%{_sysconfdir}/ctdb/events.d/20.multipathd
 %{_sysconfdir}/ctdb/events.d/40.vsftpd
 %{_sysconfdir}/ctdb/events.d/41.httpd
 %{_sysconfdir}/ctdb/events.d/50.samba
@@ -104,6 +115,7 @@ fi
 %{_sysconfdir}/ctdb/events.d/70.iscsi
 %{_sysconfdir}/ctdb/events.d/90.ipmux
 %{_sysconfdir}/ctdb/events.d/91.lvs
+%{_sysconfdir}/ctdb/events.d/99.routing
 %{_sysconfdir}/ctdb/statd-callout
 %{_sbindir}/ctdbd
 %{_bindir}/ctdb
@@ -116,8 +128,195 @@ fi
 %{_mandir}/man1/onnode.1.gz
 %{_includedir}/ctdb.h
 %{_includedir}/ctdb_private.h
+%{_libdir}/pkgconfig/ctdb.pc
 
 %changelog
+* Tue May 5 2009 : Version 1.0.69-6
+ - Try to add back the routes in 99.routing both for the takeip and also the
+   releaseip event since during releaseip) too many addresses may have been
+   deleted, causing routes to be lost.
+   See 10.interfaces for the workaround for "ip addr del" deleting too
+   many addresses.
+* Fri May 1 2009 : Version 1.0.80
+ - change init shutdown level to 01 for ctdb so it stops before any of the other services
+ - if we can not pull a database from a remote node during recovery, mark that node as a culprit so it becomes banned
+ - increase the loglevel when we volunteer to drop all ip addresses after beeing in recovery mode for too long. Make this timeout tuneable with "RecoveryDropAllIPs" and have it default to 60 seconds
+ - Add a new flag TDB_NO_NESTING to the tdb layer to prevent nested transactions which ctdb does not use and does not expect. Have ctdb set this flag to prevent nested transactions from occuring.
+ - dont unconditionally kill off ctdb and restrat it on "service ctdb start". Fail "service ctdb start" with an error if ctdb is already running.
+ - Add a new tunable "VerifyRecoveryLock" that can be set to 0 to prevent the main ctdb daemon to verify that the recovery master has locked the reclock file correctly before allowing it to set the recovery mode to active.
+ - fix a cosmetic bug with ctdb statistics where certain counters could become negative.
+* Fri May 1 2009 : Version 1.0.69-5
+ - Add a new variable VerifyRecoveryLock. When set to 0 this will skip
+   the test inside the main where it verifies that the recovery masted does
+   hold the lock to the reclock file while performing a recovery.
+ - Change the timeout for waiting for a reclock child process to terminate to
+   15 seconds and increase the logging of this potentially fatal condition.
+* Sun Apr 26 2009 : Version 1.0.69_4
+ - Add TDB_NO_NESTING to the tdb layer to prevent transaction nesting.
+ - Make sure that when we start a recovery transaction that this is not a
+   nested transaction.
+ - Add a tuneable RecoveryDropAllIPs that specifies after how long being in
+   recovery mode a node will elect to drop all its public addresses.
+* Fri Apr 24 2009 : Version 1.0.69_3
+ - Make sure that if during recovery a node is stuck and does not reply to
+   pull_db requests that we eventually ban this node from the recovery master.
+* Thu Apr 23 2009 : Version 1.0.69_2
+ - In the recovery daemon we dont need to check the nodemap status
+   of banned nodes.
+* Wed Apr 8 2009 : Version 1.0.79
+ - From Mathieu Parent: add a ctdb pkgconfig file
+ - Fix bug 6250
+ - add a funciton remove_ip to safely remove an ip from an interface, taking care to workaround an issue with linux alias interfaces.
+ - Update the natgw eventscript to use the safe remove_ip() function
+ - fix a bug in the eventscript child process that would cause the socket to be removed.
+ - dont verify nodemap on banned nodes during cluster monitoring
+ - Update the dodgy SeqnumInterval to have ms resolution
+* Tue Mar 31 2009 : Version 1.0.78
+ - Add a notify mechanism so we can send snmptraps/email to external management systems when the node becomes unhealthy
+ - include 11.natgw eventscript in thew install so that the NATGW feature works
+* Tue Mar 31 2009 : Version 1.0.77
+ - Update the 99.routing eventscript to also try to add the routes (back) during a releaseip event. Similar to the reasons why we must add addresses back during releaseip in 10.interfaces
+* Wed Mar 24 2009 : Version 1.0.76
+ - Add a debugging command "xpnn" which can print the pnn of the node even when ctdbd is not running.
+ - Redo the NATGW implementation to allow multiple disjoing NATGW groups in the same cluster.
+* Tue Mar 24 2009 : Version 1.0.75
+ - Various updates to LVS
+ - Fix a bug in the killtcp control where we did not set the port correctly
+ - add a new "ctdb scriptstatus" command that shows the status of the eventrscripts.
+* Mon Mar 16 2009 : Version 1.0.74
+ - Fixes to AIX from C Cowan.
+ - Fixes to ctdb_diagnostics so we collect correct GPFS data
+ - Fixes to the net conf list command in ctdb_diagnostics
+ - Check the static-routes file IFF it exists in ctdb_diagnostics
+* Wed Mar 4 2009 : Version 1.0.73
+ - Add possibility to disable the check of shares for NFS and Samba
+ - From Sumit Bose, fix dependencies so make -j works
+* Wed Feb 18 2009 : Version 1.0.72
+ - Updates to test scripts by martin s
+ - Adding a COPYING file
+ - Use netstat to check for services and ports and fallback to netcat
+   only if netstat is unavailable.
+* Mon Feb 2 2009 : Version 1.0.71
+ - Additional ipv6 fixes from Michael Adams
+* Fri Jan 16 2009 : Version 1.0.70
+ - IPv6 support is completed. this is backward compatible with ipv4-only
+   systems. To use IPv6 with samba and ctdb you need current GIT of samba 3.3
+   or michael adams samba-ctdeb branch.
+ - Many enhancements to the build system and scripts to make it more SUSE
+   friendly by Michael Adams.
+ - Change of how the naming of the package is structured. We are now
+   using "1.0.70" as a release and "-1" as the revision instead of as
+   previously using "1.0" as release and ".70" as the revision.
+   By Michael Adams.
+* Wed Feb 5 2009 : Version 1.0.69_1
+ - Dont check the result of the modflags control, to allow compatibility
+   with earlier versions of ctdb
+* Thu Dec 18 2008 : Version 1.0.69
+ - Various fixes to scripts by M Adam
+ - Dont call ctdb_fatal() when the transport is down during shutdown
+* Fri Dec 12 2008 : Version 1.0.68
+ - Fixes for monitoring of interfaces status from Michael Adam.
+ - Use -q instead of >/dev/null for grep to enhance readability of the
+   scripts from Michael Adam.
+ - Update to the "ctdb recover" command. This command now block until the
+   has completed. This makes it much easier to use in scripts and avoids
+   the common workaround :
+      ctdb recover
+      ... loop while waiting for recovery completes ...
+      continue ...
+ - Add a CTDB_TIMEOUT variable. If set, this variable provides an automatic
+   timeout for "ctdb <command>", similar to using -T <timeout>
+ - Set a unique errorcode for "ctdb <command>" when it terminates due to a 
+   timeout so that scripts can distinguish between a hung command and what was
+   just a failure.
+ - Update "ctdb ban/unban" so that if the cluster is in recovery these commands
+   blocks and waits until after recovery is complete before the perform the
+   ban/unban operation. This is necessary since the recovery process can cause
+   nodes to become automatically unbanned.
+ - Update "ctdb ban/unban" to block until the recovery that will follow shortly
+   after this command has completed.
+   This makes it much easier to use in scripts and avoids the common
+   workaround :
+      ctdb ban/unban
+      ... loop while waiting for recovery completes ...
+      continue ...
+ - Bugfix for the new flags handling in 1.0.67. Abort and restart monitoring
+   if we failed to get proper nodemaps from a remote node instead of
+   dereferencing a null pointer.
+ - If ctdbd was explicitely started with the '--socket' argument, make
+   ctdbd automatically set CTDB_SOCKET to the specified argument.
+   This ensures that eventscripts spawned by the ctdb daemon will default to
+   using the same socket and talk to the correct daemon.
+   This primarily affects running multiple daemons on the same host and where 
+   you want each instance of ctdb daemons have their eventscripts talk to the
+   "correct" daemon.
+ - Update "ctdb ping" to return an error code if the ping fail so that it
+   can be used in scripts.
+ - Update to how to synchronize management of node flags across the cluster.
+* Thu Dec 3 2008 : Version 1.0.67
+ - Add a document describing the recovery process.
+ - Fix a bug in "ctdb setdebug" where it would refuse to set a negative
+   debug level.
+ - Print the list of literals for debug names if an invalid one was given
+   to "ctdb setdebug"
+ - Redesign how "ctdb reloadnodes" works and reduce the amont of tcp teardowns
+   used during this event.
+ - Make it possible to delete a public ip from all nodes at once using
+   "ctdb delip -n all"
+* Mon Nov 24 2008 : Version 1.0.66
+ - Allow to change the recmaster even when we are not frozen.
+ - Remove two redundant SAMBA_CHECK variables from the sysconf example
+ - After a node failure it can take very long before some lock operations
+   ctdb needs to perform are allowed/works with gpfs again. Workaround this
+   by treating a hang/timeout as success.
+ - Dont override CTDB_BASE is fet in the shell already
+ - Always send keepalive packets regardless of whether the link is idle or not.
+ - Rewrite the disable/enable flag update logic to prevent a race between 
+   "ctdb disable/enable" and the recovery daemon when updating the flags to 
+   all nodes.
+* Thu Nov 13 2008 : Version 1.0.65
+ - Update the sysconfig example: The default debug level is 2 (NOTICE) and not
+   0 (ERROR)
+ - Add support for a CTDB_SOCKET environment variable for the ctdb command
+   line tool. If set, this overrides the default socket the ctdb tool will
+   use.
+ - Add logging of high latency operations.
+* Mon Oct 22 2008 : Version 1.0.64
+ - Add a context and a timed event so that once we have been in recovery for
+   too long we drop all public addresses.
+* Mon Oct 20 2008 : Version 1.0.63
+ - Remove logging of "periodic cleanup ..." in 50.samba
+ - When we reload a nodes file, we must detect this and reload the file also
+   in the recovery daemon before we try to dereference somethoung beyond the end
+   of the nodes array.
+* Thu Oct 16 2008 : Version 1.0.62
+ - Allow multiple eventscritps using the same prefix number.
+   It is undefined which order scripts with the same prefix will execute in.
+* Wed Oct 15 2008 : Version 1.0.61
+ - Use "route add -net" instead of "ip route add" when adding routes in 99.routing
+ - lower the loglevel os several debug statements
+ - check the status returned from ctdb_ctrl_get_tickles() before we try to print them out to the screen.
+ - install a new eventscript 20.multipathd whoich can be used to monitor that multipath devices are healthy
+* Wed Oct 15 2008 : Version 1.0.60
+ - Verify that nodes we try to ban/unban are reachable and print an error othervise.
+ - Update the client and server sides of TAKEIP/RELEASEIP/GETPUBLICIPS and GETNODEMAP to fall back to the old style ipv4-only controls if the new ipv4/ipv6 controls fail. This allows an ipv4/v6 enabled ctdb daemon to interoperate with earlier ipv4-only versions of the daemons.
+ - From Mathieu Parent : log debian systems log the package versions in ctdb diagnostics
+ - From Mathieu Parent : specify logdir location for debian (this patch was later reversed)
+ - From Michael Adams : allow # comments in nodes/public_addresses files
+* Tue Oct 7 2008 : Version 1.0.59
+ - Updated "reloadnodes" logic. Instead of bouncing the entire tcp layer it is sufficient to just close and reopen all outgoing tcp connections.
+ - New eventscript 99.routing which can be used to re-attach routes to public interfaces after a takeip event. (routes may be deleted by the kernel when we release an ip)
+ - IDR tree fix from Jim Houston
+ - Better handling of critical events if the local clock is suddenly changed forward by a lot.
+ - Fix three slow memory leaks in the recovery daemon
+ - New ctdb command : ctdb recmaster   which prints the pnn of the recmaster
+ - Onnode enhancements from Martin S : "healthy" and "connected" are now possible nodespecifiers
+ - From Martin S : doc fixes
+ - lowering some debug levels for some nonvital informational messages
+ - Make the daemon daemon monitoring stronger and allow ctdbd to detect a hung
+   recovery daemon.
+ - From C Cowan : patches to compile ipv6 under AIX
+ - zero out some structs to keep valgrind happy
 * Wed Aug 27 2008 : Version 1.0.58
  - revert the name change tcp_tcp_client back to tcp_control_tcp so
    samba can build.