New version 1.2.64
[ctdb.git] / packaging / RPM / ctdb.spec.in
index 3263aa1e68ae083caf23be03a1301e5dbb5ca382..1a5ccfcdf8ba9ab989f3b1addc347d99000b70d3 100644 (file)
@@ -1,10 +1,9 @@
 %define initdir %{_sysconfdir}/init.d
-
+Name: ctdb
 Summary: Clustered TDB
 Vendor: Samba Team
 Packager: Samba Team <samba@samba.org>
-Name: ctdb
-Version: 1.0.113
+Version: 1.2.64
 Release: 1GITHASH
 Epoch: 0
 License: GNU GPL version 3
@@ -13,8 +12,12 @@ URL: http://ctdb.samba.org/
 
 Source: ctdb-%{version}.tar.gz
 
-Prereq: /bin/mktemp /usr/bin/killall
-Prereq: fileutils sed /etc/init.d
+# Packages
+Requires: coreutils, sed, gawk, iptables, iproute, procps, ethtool, sudo
+# Commands - package name might vary
+Requires: /usr/bin/killall, /bin/kill, /bin/netstat
+# Directories
+Requires: /etc/init.d
 
 Provides: ctdb = %{version}
 
@@ -27,6 +30,8 @@ ctdb is the clustered database used by samba
 
 #######################################################################
 
+
+
 %prep
 %setup -q
 # setup the init script and sysconfig file
@@ -62,6 +67,7 @@ rm -rf $RPM_BUILD_ROOT
 # Create the target build directory hierarchy
 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/init.d
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sudoers.d
 
 make DESTDIR=$RPM_BUILD_ROOT docdir=%{_docdir} install
 
@@ -87,14 +93,19 @@ rm -rf $RPM_BUILD_ROOT
 
 %config(noreplace) %{_sysconfdir}/sysconfig/ctdb
 %config(noreplace) %{_sysconfdir}/ctdb/notify.sh
+%config(noreplace) %{_sysconfdir}/ctdb/debug-hung-script.sh
+%config(noreplace) %{_sysconfdir}/ctdb/ctdb-crash-cleanup.sh
+%config(noreplace) %{_sysconfdir}/ctdb/gcore_trace.sh
 %config(noreplace) %{_sysconfdir}/ctdb/functions
 %attr(755,root,root) %{initdir}/ctdb
 
 %{_docdir}/ctdb/README.eventscripts
 %{_docdir}/ctdb/recovery-process.txt
+%{_sysconfdir}/sudoers.d/ctdb
 %{_sysconfdir}/ctdb/events.d/00.ctdb
 %{_sysconfdir}/ctdb/events.d/01.reclock
 %{_sysconfdir}/ctdb/events.d/10.interface
+%{_sysconfdir}/ctdb/events.d/13.per_ip_routing
 %{_sysconfdir}/ctdb/events.d/11.natgw
 %{_sysconfdir}/ctdb/events.d/11.routing
 %{_sysconfdir}/ctdb/events.d/20.multipathd
@@ -103,27 +114,319 @@ rm -rf $RPM_BUILD_ROOT
 %{_sysconfdir}/ctdb/events.d/41.httpd
 %{_sysconfdir}/ctdb/events.d/50.samba
 %{_sysconfdir}/ctdb/events.d/60.nfs
-%{_sysconfdir}/ctdb/events.d/61.nfstickle
+%{_sysconfdir}/ctdb/events.d/60.ganesha
+%{_sysconfdir}/ctdb/events.d/62.cnfs
 %{_sysconfdir}/ctdb/events.d/70.iscsi
 %{_sysconfdir}/ctdb/events.d/91.lvs
 %{_sysconfdir}/ctdb/statd-callout
 %{_sysconfdir}/ctdb/interface_modify.sh
+%{_sysconfdir}/ctdb/debug_locks.sh
 %{_sbindir}/ctdbd
 %{_bindir}/ctdb
+%{_bindir}/ctdb_lockwait_helper
 %{_bindir}/smnotify
 %{_bindir}/ping_pong
+%{_bindir}/ltdbtool
 %{_bindir}/ctdb_diagnostics
 %{_bindir}/onnode
 %{_mandir}/man1/ctdb.1.gz
 %{_mandir}/man1/ctdbd.1.gz
 %{_mandir}/man1/onnode.1.gz
-%{_includedir}/ctdb.h
-%{_includedir}/ctdb_private.h
+%{_mandir}/man1/ltdbtool.1.gz
 %{_libdir}/pkgconfig/ctdb.pc
 
 %{_docdir}/ctdb/tests/bin/ctdb_transaction
 
+%package devel
+Summary: CTDB developmnet libraries
+Group: Development
+
+%description devel
+development libraries for ctdb
+
+%files devel
+%defattr(-,root,root)
+%{_includedir}/ctdb.h
+%{_includedir}/ctdb_client.h
+%{_includedir}/ctdb_protocol.h
+%{_includedir}/ctdb_private.h
+%{_includedir}/ctdb_typesafe_cb.h
+%{_libdir}/libctdb.a
+
 %changelog
+
+* Thu Jun 20 2013 : Version 1.2.64
+  - Add configuration variables to maintain configured number of NFS threads
+  - Fix racy code in CTDB commandline tool for ipreallocate/sync
+  - Fix printing of node flags
+* Mon Jun 17 2013 : Version 1.2.63
+  - Sync tdb library version to 1.2.12
+* Mon Apr 22 2013 : Version 1.2.62
+  - Fix a bug where subsequent recoveries can corrupt databases
+  - Fix breakage when freeing log ringbuffer
+  - Add option to create PID file
+  - Check for process existence in service ctdb status instead of ctdb status
+  - Fix ctdb statisticsreset clearing num_clients
+* Fri Apr 05 2013 : Version 1.2.61
+  - Free message list header if all message handlers are freed
+  - Use tdb_parse_record instead of tdb_fetch to avoid memory leaks
+  - Set client socket to non-blocking only after connect succeeds
+  - Make sure statd-callout script is always run as root
+  - Use IP->node mapping info from nodes hosting that IP
+  - Pass CTDB daemon pid on command line to lockwait helper
+* Mon Mar 25 2013 : Version 1.2.60
+  - Do not set close_on_exec for stdio/stderr of child
+  - Check result from lockwait child
+  - Pass locking information on commandline to lockwait helper
+  - Allow for zero length key requests
+* Wed Mar 06 2013 : Version 1.2.59
+  - Do not send ipreallocated event to stopped nodes
+  - Do not fail "ctdb delip" command if IP cannot be moved
+  - Add an index db for faster searches of message handlers
+  - Scheule immediate events using tevent_schedule_immediate
+  - Optimize adding of new timer events (tevent library)
+  - Use standalone helper for locking a record
+* Tue Feb 19 2013 : Version 1.2.58
+  - Terminate traverse children when traverse operation times out
+  - Rewrite socket handling code to read all available data
+  - Remove call to "smbstatus -np" as part of periodic cleanup
+  - Free log ringbuffer in ctdb_fork() for child processes
+  - Use preallocation for pulldb buffer during recovery, instead of growing it
+* Thu Feb 07 2013 : Version 1.2.57
+  - Backport fetch lock collapse patches
+  - Backport debugging of hung eventscripts via external script
+* Wed Dec 02 2012 : Version 1.2.56
+  - When deadlock condition is detected, run extrnal script to log debugging information
+  - Use __db_sequence_number based recovery of persistent databases by default
+* Tue Nov 27 2012 : Version 1.2.55
+  - Do not ignore timed out monitor events
+  - Track nodes that fail takeover run and ban them
+  - For new interfaces mark the link up by default after startup
+  - In 10.interface eventscript use configured interaces to monitor
+  - Do not set the initial interface when adding new public address
+* Wed Oct 30 2012 : Version 1.2.54
+  - Protect against double free of active monitor callback state during shutdown
+  - Remove duplicate code to set tunables from initscript
+* Fri Oct 26 2012 : Version 1.2.53
+  - Initscript: backup corrupt non-persistent database before starting CTDB
+* Fri Oct 05 2012 : Version 1.2.52
+  - util: ctdb_fork() closes all sockets opened by the main daemon
+* Tue Oct 02 2012 : Version 1.2.51
+  - NATGW eventscript does not fail on recovered in case of misconfiguration
+  - Map TEVENT_DEBUG_FATAL to DEBUG_CRIT
+* Wed Sep 12 2012 : Version 1.2.50
+  - Add utility function to dump core and use it for "unknown family, 0" error
+* Tue Aug 21 2012 : Version 1.2.49
+ - logging: Close unix socket /tmp/ctdb.socket in syslogd process
+ - Initscript: Kill any existing ctdbd processes if the ping succeeds
+* Thu Aug 08 2012 : Version 1.2.48
+ - Fix missing set_proc() in policy routing
+* Thu Aug 08 2012 : Version 1.2.47
+ - Add reconfigure event for policy routing
+* Tue Jul 24 2012 : Version 1.2.46
+ - Default route on NAT gateway should have a metric of 10
+* Thu Jul 12 2012 : Version 1.2.45
+ - Robust removal of rogue public IPs
+* Fri Jun 29 2012 : Version 1.2.44
+ - improvements to the policy routing support
+* Thu Mar 29 2012 : Version 1.2.43
+ - Add CTDB_CONTROL_CHECK_SRVID control
+* Mon Mar 12 2012 : Version 1.2.42
+ - Allow non-readonly database UPDATE_RECORD to create non-existing records
+   or else net command and the registry breaks.
+   S1035666
+* Tue Mar 6 2012 : Version 1.2.41
+ - rewrite of 13.per_ip_routing script
+ - readonly record bugfixes
+ - add statistics for readonly delegations and revokes
+* Mon Feb 6 2012 : Version 1.2.40
+ - Fix for LCP2 failure to balance uneven netgroups
+ - Add ReadOnly record support
+* Thu Nov 17 2011 : Version 1.2.39
+ - Handle canceled monitor events better, dont assume they are always status==OK
+* Mon Oct 17 2011 : Version 1.2.38
+ - When adding a new ip, release it from the current node so it gets rebalanced : S1031575
+ - fix autostop for 50.samba eventscript : S1031552
+* Thu Oct 13 2011 : Version 1.2.37
+ - updates to ctdb-diagnostics
+* Thu Sep 22 2011 : Version 1.2.36
+ - Fix for delip failing to delete the ip drom the interface
+   S1028798
+* Thu Sep 8 2011 : Version 1.2.35
+ - Drop loglevel for a tevent warning from critical to error : S1028400
+ - Add new tunable : AllowClientDBAttach to allow different / new approach to concurrent upgrade
+* Fri Aug 26 2011 : Version 1.2.34
+ - Workaround for external startup issue for samba   S1028573
+ - Workaround for linux netstat bug   S1024874
+* Mon Aug 15 2011 : Version 1.2.33
+ - Activate LCP2 by default
+ - LVS change to make the persistence timer longer
+ - Eventscripts: weaken the TCP checking if we have just started S1024874
+ - I/O queue buffer bug fix
+ - Remove log messages S1026357, S1026492
+ - 10.interface  dont check orphaned interfaces
+* Fri Jul 29 2011 : Version 1.2.32
+ - Add new LCP2 ip allocation algorithm
+ - Two fixes for 'ctdb delip ...' CQ S1026664 CQ S10226179
+* Mon Jul 11 2011 : Version 1.2.31
+ - Add extra logging to the debug commands "wipedb" and "backupdb"
+ - Try numips+5 times when rebalancing ips.
+ - Change the name for hte key where we store the public address config.
+   S1019030
+ - Remove benign log message
+   S1024495
+ - Fix that 'onnode con ...' works
+   S1024277
+ - Add extra debug to netstat to capture a bug where samba drops off the
+   netstat output.
+   S1024874
+* Mon May 30 2011 : Version 1.2.30
+ - Add LDBTOOL
+ - workaround funky vlan issue with kernel dropping routes
+   S1023538
+ - remove collection of gpfs data from ctdb-diagnostics
+   S1023524
+* Tue May 10 2011 : Version 1.2.29
+ - Add workaround to RHEL5.5 kernel bug with how it reports bond interface
+   status when mode 4 is used.
+ - Remove some log messages that fill up syslog  CQ S1023302
+ - Dont call UPDATE event if the interface didnt change. This only causes a lot of i
+   spam in the syslog  S1018175
+ - Remove log messages that are benign and can be ignored  S1023378
+ - If "service smb start" fails, make the whole startup event fail so that
+   we retry to start samba again later. CQ S1023394
+* Mon Apr 11 2011 : Version 1.2.28
+ - Update how we handle interface link status
+   also check for and become unhealthy if an interface has been deleted
+* Mon Mar 21 2011 : Version 1.2.27
+ - Fix a tdb_lock all bug in the ctdb_req_dmaster from non-master code.
+   CQ S1022545
+* Mon Mar 21 2011 : Version 1.2.26
+ - Fix a talloc hierarchy bug for the deferred attach context
+   CQ S1022515
+* Mon Mar 14 2011 : Version 1.2.25
+ - Vacuum update. Vacuuming updated from Michael Adam's vacuuming patch which
+   greatly improves the speed of vacuuming of shortlived records.
+ - Defer database access until we have well gone through initial startup and covergence. This reduces the chance of hitting a split brain when writing to the cluster if we dont use split brain protection reclock file.
+ - Try to restart recovery daemon if/when it fails or hangs.
+* Fri Feb 25 2011 : Version 1.2.23
+ - Fix for "DB Attach to database %s refused. Can not match clientid.."
+   that was introduced in 1.2.22
+* Wed Feb 23 2011 : Version 1.2.22
+ - Fix transaction errors that especially happened during startup.
+* Mon Feb 21 2011 : Version 1.2.21
+ - fix for CQ 1022004
+* Tue Feb 8 2011 : Version 1.2.20
+ - Make addip command more robust for "slow" systems.
+* Mon Jan 31 2011 : Version 1.2.19
+ - Extra logging to show why CTDB dont start if it is in STOPPED state
+   CQ S1021747
+ - Collapse all DMASTER migration requests on one single dmaster node for a record into one single lockwait child.
+   CQ S1021584
+* Wed Jan 18 2011 : Version 1.2.18
+ - Fix for a deadlock in the TDB library, causing "Time Jumped" error messages
+   and hung CTDBD process.
+* Mon Jan 17 2011 : Version 1.2.17
+ - Updates to the event logging from Christian.
+ - Libctdb : traverse support
+ - Updates to the event logging by adding internal ticker.
+ - Addip/Delip/Moveip : make more robust by adding retry if failure
+ - Dont ban nodes for ipreallocation failures, being unhealthy is sufficient
+ - NFS eventscripts : lower the fail/restart limits
+ - Eventscript restart : only restart on monitor event.
+ - Libctdb crash issue from Mike Anderson
+ - chante daemon back to real-time process to handle high load better and reduce
+   time jumped messages.
+ - nfs eventscript : skip checking statd when running on SLES systems
+* Wed Dec 22 2010 : Version 1.2.16
+ - 50.samba  dont run serverid wipe in the background in case it
+   is so slow to start that samba manages to come up before it finishes.
+ - 60.nfs  wait 10 intervals before trying to restart lockd.
+   flag the node unhealthy after 15 failures.
+   CQ S1021266
+ - 41.httpd  httpd can sometimes be slow, wait 5 intervals before we try to
+   restart it and 10 intervals before we flag the node unhealthy.
+* Mon Dec 13 2010 : Version 1.2.15
+ - Add two new debugging commands "ctdb readkey/writekey"
+ - idtree overflow bugfix
+ - only run "serverid wipe" when we are actually running samba
+ - libctdb, add roper input queueing so we can support calling
+   sync functions from an async callback
+ - lvs updates
+ - addip, always wait across at least one ip reallocation, making the
+   command slower, but making it easier to use in scripts
+* Mon Dec 6 2010 : Version 1.2.14
+ - detect when ip allocation is inconsistent and some hosts show -1
+   as the node for the ip.
+   cq s1021073
+ - nfs ganesha support in eventscripts
+ - remove lacount/laccessor from the ltdb header
+* Fri Dec 3 2010 : Version 1.2.13
+ - Fix a bug with the script autostart feature.
+   Dont try to start samba during the init event
+* Mon Nov 29 2010 : Version 1.2.12
+ - If we are no longer natgw master, tell winbind to recycle the socket.
+* Mon Nov 22 2010 : Version 1.2.11
+ - Fix bugs in the evenstcripts where we are supposed to automatically
+   start/stop services when CTDB_MANAGES_* changes, and we were not.
+ - Change 60.nfs to allow kNFSd to have been dead for quite a long time
+   before we flag the node as unehalthy and failover.
+* Mon Nov 15 2010 : Version 1.2.10
+ - Make sure to initialize the statistics start time to current time
+   instead of leaving it to point to start of epoch.
+   CQ : S1020838
+ - Create a new tunable DisableIPFailover that is used to tell ctdb
+   to not check any ip allocation at all and never do any failover
+   This can be used to stop/restart individual nodes without causing
+   any ip failovers to happen.
+* Tue Nov 2 2010 : Version 1.2.9
+ - Drop loglevels on several items and remove spam from the messages file
+ - Both nfs and nfslock can fail so restart both if there is a problem
+* Mon Oct 25 2010 : Version 1.2.8
+ - Allow samba to specify that a new database to attach to/ create
+   should use Jenkins3 hash :  CQ1019744
+* Mon Oct 18 2010 : Version 1.2.7
+ - Dont monitor GPFS filesystems in 62.cnfs
+ - If tdb_open() fails, print errno to make troubleshooting easier
+ - Try restarting RPC.LOCKD if it failed to start
+ - Remove a dbug message
+ - Make sure the statd state directory exists before trying to touch files in it.
+* Tue Oct 12 2010 : Version 1.2.6
+ - Move config.tdb handling into a function in 00.ctdb 
+ - Latency counters min/max/avg for all latency statistics
+ - Update default hash size to be 100001
+ - Check all bond devices, dont exit after the first one
+ - Change to useing the Jenkins hash for LMASTER selection
+ - Sync with TDB from upstream samba
+ - idtree fix for AIX
+ - remove some log messages
+ - add rolling statistics
+ - libctdb updates
+* Thu Sep 9 2010 : Version 1.2.5
+ - Suppress some VSFTPD warnings
+ - Make sure all STATD directories exist before we dereference them
+ - AIX socket fix
+ - Fix for a crash when we write a debug message after a memory allocation
+   fail. Fix the message and call ctdb_fatal() properly
+ - Move the state directory off /etc/ctdb and to /var/ctdb
+ - Natgw changes to allow "slave only" natgw members
+ - Fix "ctdb listnodes" so it works again.
+* Mon Aug 30 2010 : Version 1.2.4
+ - fix a bug in the ipreallocate eventscript handling
+ - remove a debug logentry
+* Mon Aug 30 2010 : Version 1.2.3
+ - finish moving CTDB off the udnerlying filesystem.
+   both tickles and statd information
+ - new infrastructure to support the above
+ - move configuration of public addresses into a config persistent database
+   (optionally)
+ - infrastructure for the above
+* Fri Aug 20 2010 : Version 1.2
+ - Initial version 1.2 release
+* Tue May 25 2010 : Version 1.9
+ - Lots of changes
+* Wed Mar 25 2010 : Version 1.0.114
+ - Lots of changes from Metze
 * Wed Jan 13 2010 : Version 1.0.113
  - Incorrect use of dup2() could cause ctdb to spin eating 100% cpu.
 * Tue Jan 12 2010 : Version 1.0.112