ctdb-tests: Add local_daemons.sh
[vlendec/samba-autobuild/.git] / ctdb / packaging / RPM / ctdb.spec.in
index bbbf66c26b14d46a9581139822258c3fc677a2a5..537f158b2d14704bb6d5c4f116e7cd390078288a 100644 (file)
@@ -38,7 +38,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-root
 
 # Required minimum library versions when building with system libraries
 %define libtalloc_version 2.0.8
-%define libtdb_version 1.2.11
+%define libtdb_version 1.3.11
 %define libtevent_version 0.9.16
 
 %if ! %with_included_talloc
@@ -100,7 +100,7 @@ CFLAGS="$RPM_OPT_FLAGS $EXTRA -D_GNU_SOURCE" ./buildtools/bin/waf configure \
        --libexecdir=%{_libexecdir} \
        --sysconfdir=%{_sysconfdir} \
        --mandir=%{_mandir} \
-       --localstatedir="/var"
+       --localstatedir=%{_localstatedir}
 
 ./buildtools/bin/waf build
 
@@ -109,11 +109,15 @@ CFLAGS="$RPM_OPT_FLAGS $EXTRA -D_GNU_SOURCE" ./buildtools/bin/waf configure \
 rm -rf $RPM_BUILD_ROOT
 
 # Create the target build directory hierarchy
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sudoers.d
 
 DESTDIR=$RPM_BUILD_ROOT ./buildtools/bin/waf install
 
+install -m644 config/ctdb.conf $RPM_BUILD_ROOT%{_sysconfdir}/ctdb
+install -m644 config/ctdb.tunables $RPM_BUILD_ROOT%{_sysconfdir}/ctdb
+install -m644 config/script.options $RPM_BUILD_ROOT%{_sysconfdir}/ctdb
+
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
 install -m644 config/ctdb.sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/ctdb
 
 %if %{with_systemd}
@@ -125,11 +129,10 @@ install -m755 config/ctdb.init $RPM_BUILD_ROOT%{initdir}/ctdb
 %endif
 
 # This is a hack. All documents should be installed in /usr/share/doc.
-rm -f $RPM_BUILD_ROOT%{_sysconfdir}/ctdb/events.d/README
-cp config/events.d/README README.eventscripts
+cp config/events/README README.eventscripts
 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/ctdb/nfs-checks.d/README
 cp config/nfs-checks.d/README README.nfs-checks.d
-cp config/notify.d.README README.notify.d
+cp config/notification.README README.notification
 
 # Remove "*.old" files
 find $RPM_BUILD_ROOT -name "*.old" -exec rm -f {} \;
@@ -137,54 +140,70 @@ find $RPM_BUILD_ROOT -name "*.old" -exec rm -f {} \;
 %clean
 rm -rf $RPM_BUILD_ROOT
 
+%post
+
+# If mandatory 00.ctdb event script is not enabled then enable it and
+# some other scripts.  The assumption here is that this is a
+# first-time install or an upgrade to a version that requires event
+# scripts to be enabled via symlinks.
+required_script="00.ctdb"
+required_path="%{_sysconfdir}/ctdb/events/legacy/${required_script}.script"
+if [ ! -L "$required_path" ] && [ ! -e "$required_path" ] ; then
+       default_scripts="${required_script}
+                        01.reclock
+                        05.system
+                        10.interface
+                        "
+       for t in $default_scripts ; do
+               tgt="%{_datadir}/ctdb/events/legacy/${t}.script"
+               name="%{_sysconfdir}/ctdb/events/legacy/${t}.script"
+               # Directory is created via install and files
+               ln -s "$tgt" "$name"
+       done
+fi
 
-#######################################################################
-## Files section                                                     ##
-#######################################################################
+%preun
+
+# Uninstall, not upgrade.  Clean up by removing any remaining links.
+if [ "$1" = "0" ] ; then
+       for i in "%{_sysconfdir}/ctdb/events/legacy/"*.script ; do
+               if [ -L "$i" ] ; then
+                       rm -f "$i"
+               fi
+       done
+fi
 
 %files
 %defattr(-,root,root)
 
-%config(noreplace) %{_sysconfdir}/sysconfig/ctdb
-%config(noreplace) %{_sysconfdir}/ctdb/notify.sh
+%config(noreplace) %{_sysconfdir}/ctdb/ctdb.conf
+%config(noreplace) %{_sysconfdir}/ctdb/ctdb.tunables
+%config(noreplace) %{_sysconfdir}/ctdb/script.options
+%{_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/debug_locks.sh
 
+%config(noreplace, missingok) %{_sysconfdir}/sysconfig/ctdb
+
 %if %{with_systemd}
 %{_unitdir}/ctdb.service
 %else
 %attr(755,root,root) %{initdir}/ctdb
 %endif
 
-%attr(755,root,root) %{_sysconfdir}/ctdb/notify.d
-
 %doc README COPYING
-%doc README.eventscripts README.notify.d
+%doc README.eventscripts README.notification
 %doc doc/recovery-process.txt
+%doc doc/cluster_mutex_helper.txt
 %doc doc/*.html
 %doc doc/examples
 %{_sysconfdir}/sudoers.d/ctdb
+%dir %{_sysconfdir}/ctdb
 %{_sysconfdir}/ctdb/functions
-%{_sysconfdir}/ctdb/events.d/00.ctdb
-%{_sysconfdir}/ctdb/events.d/01.reclock
-%{_sysconfdir}/ctdb/events.d/05.system
-%{_sysconfdir}/ctdb/events.d/10.interface
-%{_sysconfdir}/ctdb/events.d/10.external
-%{_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
-%{_sysconfdir}/ctdb/events.d/31.clamd
-%{_sysconfdir}/ctdb/events.d/40.vsftpd
-%{_sysconfdir}/ctdb/events.d/41.httpd
-%{_sysconfdir}/ctdb/events.d/49.winbind
-%{_sysconfdir}/ctdb/events.d/50.samba
-%{_sysconfdir}/ctdb/events.d/60.nfs
-%{_sysconfdir}/ctdb/events.d/70.iscsi
-%{_sysconfdir}/ctdb/events.d/91.lvs
-%{_sysconfdir}/ctdb/events.d/99.timeout
+%dir %{_sysconfdir}/ctdb/events
+%{_sysconfdir}/ctdb/events/*
+%dir %{_sysconfdir}/ctdb/nfs-checks.d
 %config(noreplace) %{_sysconfdir}/ctdb/nfs-checks.d/00.portmapper.check
 %config(noreplace) %{_sysconfdir}/ctdb/nfs-checks.d/10.status.check
 %config(noreplace) %{_sysconfdir}/ctdb/nfs-checks.d/20.nfs.check
@@ -201,25 +220,27 @@ rm -rf $RPM_BUILD_ROOT
 %{_bindir}/ctdb_diagnostics
 %{_bindir}/onnode
 %dir %{_libexecdir}/ctdb
-%{_libexecdir}/ctdb/ctdb_lock_helper
-%{_libexecdir}/ctdb/ctdb_event_helper
-%{_libexecdir}/ctdb/ctdb_recovery_helper
-%{_libexecdir}/ctdb/ctdb_natgw
-%{_libexecdir}/ctdb/ctdb_killtcp
-%{_libexecdir}/ctdb/smnotify
+%{_libexecdir}/ctdb/*
 %dir %{_libdir}
 %{_libdir}/ctdb/lib*
-%{_libdir}/libtevent-unix-util.so.0*
+%dir %{_datadir}/ctdb/events
+%{_datadir}/ctdb/events/*
 %{_mandir}/man1/ctdb.1.gz
+%{_mandir}/man1/ctdb_diagnostics.1.gz
 %{_mandir}/man1/ctdbd.1.gz
 %{_mandir}/man1/ctdbd_wrapper.1.gz
 %{_mandir}/man1/onnode.1.gz
 %{_mandir}/man1/ltdbtool.1.gz
 %{_mandir}/man1/ping_pong.1.gz
-%{_mandir}/man5/ctdbd.conf.5.gz
+%{_mandir}/man5/ctdb.conf.5.gz
+%{_mandir}/man5/ctdb-script.options.5.gz
+%{_mandir}/man5/ctdb.sysconfig.5.gz
 %{_mandir}/man7/ctdb.7.gz
 %{_mandir}/man7/ctdb-statistics.7.gz
 %{_mandir}/man7/ctdb-tunables.7.gz
+%attr(0700,root,root) %dir %{_localstatedir}/lib/ctdb
+%attr(0700,root,root) %dir %{_localstatedir}/lib/ctdb/*
+%attr(0700,root,root) %dir %{_localstatedir}/run/ctdb
 
 
 %package devel
@@ -231,8 +252,6 @@ development libraries for ctdb
 
 %files devel
 %defattr(-,root,root)
-%{_includedir}/ctdb/util/*.h
-%{_libdir}/libtevent-unix-util.so
 
 %package tests
 Summary: CTDB test suite
@@ -245,12 +264,13 @@ test suite for ctdb
 
 %files tests
 %defattr(-,root,root)
-%dir %{_datadir}/%{name}-tests
-%{_datadir}/%{name}-tests/*
-%dir %{_libdir}/%{name}-tests
-%{_libdir}/%{name}-tests/*
+%dir %{_datadir}/%{name}/tests
+%{_datadir}/%{name}/tests/*
+%dir %{_libexecdir}/%{name}/tests
+%{_libexecdir}/%{name}/tests/*
 %{_bindir}/ctdb_run_tests
 %{_bindir}/ctdb_run_cluster_tests
+%{_bindir}/ctdb_local_daemons
 %doc tests/README
 
 %if %with_pcp_pmda
@@ -265,7 +285,7 @@ Requires: pcp-libs
 Performance Co-Pilot (PCP) support for CTDB
 
 %files pcp-pmda
-%dir /var/lib/pcp/pmdas/ctdb
-/var/lib/pcp/pmdas/ctdb/*
+%dir %{_localstatedir}/lib/pcp/pmdas/ctdb
+%{_localstatedir}/lib/pcp/pmdas/ctdb/*
 
 %endif