1 %define with_systemd
%{?_with_systemd: 1} %{?!_with_systemd: 0}
2 %define initdir
%{_sysconfdir}/init.d
6 Packager: Samba Team
<samba@samba.org
>
10 License: GNU GPL version
3
11 Group: System Environment
/Daemons
12 URL: http
://ctdb.samba.org
/
14 Source: ctdb
-%{version}.tar.gz
17 Requires: coreutils
, sed
, gawk
, iptables
, iproute
, procps
, ethtool
18 # Commands - package name might vary
19 Requires: /usr
/bin
/killall
, /bin
/kill, /bin
/ss
21 Provides: ctdb
= %{version}
24 BuildRoot: %{_tmppath}/%{name}-%{version}-root
26 # Allow build with system libraries
27 # To enable, run rpmbuild with,
28 # "--with system_talloc"
30 # "--with system_tevent"
31 #%define with_included_talloc %{?_with_system_talloc: 0} %{?!_with_system_talloc: 1}
32 #%define with_included_tdb %{?_with_system_tdb: 0} %{?!_with_system_tdb: 1}
33 #%define with_included_tevent %{?_with_system_tevent: 0} %{?!_with_system_tevent: 1}
35 %define with_included_talloc
0
36 %define with_included_tevent
0
37 %define with_included_tdb
0
39 # Required minimum library versions when building with system libraries
40 %define libtalloc_version
2.0.8
41 %define libtdb_version
1.3.11
42 %define libtevent_version
0.9.16
44 %if ! %with_included_talloc
45 BuildRequires
: libtalloc
-devel
>= %{libtalloc_version}
46 Requires: libtalloc
>= %{libtalloc_version}
48 %if ! %with_included_tdb
49 BuildRequires
: libtdb
-devel
>= %{libtdb_version}
50 Requires: libtdb
>= %{libtdb_version}
52 %if ! %with_included_tevent
53 BuildRequires
: libtevent
-devel
>= %{libtevent_version}
54 Requires: libtevent
>= %{libtevent_version}
57 # To build the ctdb-pcp-pmda package, run rpmbuild with "--with pmda"
58 %define with_pcp_pmda
%{?_with_pmda: 1} %{?!_with_pmda: 0}
60 BuildRequires
: pcp
-libs
-devel
64 BuildRequires
: systemd
-units
68 ctdb is the clustered database used by samba
70 #######################################################################
76 # setup the init script and sysconfig file
77 %setup -T
-D
-n ctdb
-%{version} -q
82 if ccache
-h
>/dev
/null
2>&1 ; then
90 CFLAGS
="$RPM_OPT_FLAGS $EXTRA
-D_GNU_SOURCE" \
92 --builtin-libraries
=replace
,popt \
93 --bundled
-libraries
=!talloc
,!tevent
,!tdb \
94 --minimum
-library
-version
=talloc
:%libtalloc_version,tdb
:%libtdb_version,tevent
:%libtevent_version \
99 --includedir
=%{_includedir}/ctdb \
100 --libdir
=%{_libdir} \
101 --libexecdir
=%{_libexecdir} \
102 --sysconfdir
=%{_sysconfdir} \
103 --mandir
=%{_mandir} \
104 --localstatedir
=%{_localstatedir}
109 # Clean up in case there is trash left from a previous build
110 rm -rf $RPM_BUILD_ROOT
112 DESTDIR
=$RPM_BUILD_ROOT
make -j
install
114 install -m644 config
/ctdb.conf $RPM_BUILD_ROOT
%{_sysconfdir}/ctdb
115 install -m644 config
/ctdb.tunables $RPM_BUILD_ROOT
%{_sysconfdir}/ctdb
116 install -m644 config
/script.options $RPM_BUILD_ROOT
%{_sysconfdir}/ctdb
118 mkdir -p $RPM_BUILD_ROOT
%{_sysconfdir}/sysconfig
119 install -m644 config
/ctdb.sysconfig $RPM_BUILD_ROOT
%{_sysconfdir}/sysconfig
/ctdb
122 mkdir -p $RPM_BUILD_ROOT
%{_unitdir}
123 install -m
755 config
/ctdb.service $RPM_BUILD_ROOT
%{_unitdir}
125 mkdir -p $RPM_BUILD_ROOT
%{initdir}
126 install -m755 config
/ctdb.init $RPM_BUILD_ROOT
%{initdir}/ctdb
129 # This is a hack. All documents should be installed in /usr/share/doc.
130 cp config
/events
/README README.eventscripts
131 rm -f $RPM_BUILD_ROOT
%{_sysconfdir}/ctdb
/nfs
-checks.d
/README
132 cp config
/nfs
-checks.d
/README README.nfs
-checks.d
133 cp config
/notification.README README.notification
135 # Remove "*.old" files
136 find $RPM_BUILD_ROOT
-name "
*.old"
-exec rm -f
{} \
;
139 rm -rf $RPM_BUILD_ROOT
143 # If mandatory 00.ctdb event script is not enabled then enable it and
144 # some other scripts. The assumption here is that this is a
145 # first-time install or an upgrade to a version that requires event
146 # scripts to be enabled via symlinks.
147 required_script
="
00.ctdb"
148 required_path
="
%{_sysconfdir}/ctdb/events/legacy/${required_script}.script"
149 if [ ! -L "$required_path"
] && [ ! -e "$required_path"
] ; then
150 default_scripts
="$
{required_script
}
156 for t
in $default_scripts
; do
157 tgt
="
%{_datadir}/ctdb/events/legacy/${t}.script"
158 name
="
%{_sysconfdir}/ctdb/events/legacy/${t}.script"
159 # Directory is created via install and files
166 # Uninstall, not upgrade. Clean up by removing any remaining links.
167 if [ "$
1"
= "
0"
] ; then
168 for i
in "
%{_sysconfdir}/ctdb
/events
/legacy
/"
*.script
; do
169 if [ -L "$i"
] ; then
176 %defattr(-,root
,root
)
178 %config(noreplace
) %{_sysconfdir}/ctdb
/ctdb.conf
179 %config(noreplace
) %{_sysconfdir}/ctdb
/ctdb.tunables
180 %config(noreplace
) %{_sysconfdir}/ctdb
/script.options
181 %{_sysconfdir}/ctdb
/notify.sh
182 %config(noreplace
) %{_sysconfdir}/ctdb
/debug
-hung
-script.sh
183 %config(noreplace
) %{_sysconfdir}/ctdb
/ctdb
-crash
-cleanup.sh
184 %config(noreplace
) %{_sysconfdir}/ctdb
/debug_locks.sh
186 %config(noreplace
, missingok
) %{_sysconfdir}/sysconfig
/ctdb
189 %{_unitdir}/ctdb.service
191 %attr(755,root
,root
) %{initdir}/ctdb
195 %doc README.eventscripts README.notification
196 %doc doc
/recovery
-process.txt
197 %doc doc
/cluster_mutex_helper.txt
200 %dir %{_sysconfdir}/ctdb
201 %{_sysconfdir}/ctdb
/functions
202 %{_sysconfdir}/ctdb
/ctdb
-backup
-persistent
-tdbs.sh
203 %dir %{_sysconfdir}/ctdb
/events
204 %{_sysconfdir}/ctdb
/events
/*
205 %dir %{_sysconfdir}/ctdb
/nfs
-checks.d
206 %config(noreplace
) %{_sysconfdir}/ctdb
/nfs
-checks.d
/00.portmapper.check
207 %config(noreplace
) %{_sysconfdir}/ctdb
/nfs
-checks.d
/10.status.check
208 %config(noreplace
) %{_sysconfdir}/ctdb
/nfs
-checks.d
/20.nfs.check
209 %config(noreplace
) %{_sysconfdir}/ctdb
/nfs
-checks.d
/30.nlockmgr.check
210 %config(noreplace
) %{_sysconfdir}/ctdb
/nfs
-checks.d
/40.mountd.check
211 %config(noreplace
) %{_sysconfdir}/ctdb
/nfs
-checks.d
/50.rquotad.check
212 %{_sysconfdir}/ctdb
/statd
-callout
213 %{_sysconfdir}/ctdb
/nfs
-linux
-kernel
-callout
218 %{_bindir}/ctdb_diagnostics
220 %dir %{_libexecdir}/ctdb
221 %{_libexecdir}/ctdb
/*
223 %{_libexecdir}/tdb_mutex_check
225 %dir %{_datadir}/ctdb
/events
226 %{_datadir}/ctdb
/events
/*
227 %{_mandir}/man1
/ctdb
.1.gz
228 %{_mandir}/man1
/ctdb_diagnostics
.1.gz
229 %{_mandir}/man1
/ctdbd
.1.gz
230 %{_mandir}/man1
/onnode
.1.gz
231 %{_mandir}/man1
/ltdbtool
.1.gz
232 %{_mandir}/man1
/ping_pong
.1.gz
233 %{_mandir}/man5
/ctdb.conf
.5.gz
234 %{_mandir}/man5
/ctdb
-script.options
.5.gz
235 %{_mandir}/man5
/ctdb.sysconfig
.5.gz
236 %{_mandir}/man7
/ctdb
.7.gz
237 %{_mandir}/man7
/ctdb
-statistics
.7.gz
238 %{_mandir}/man7
/ctdb
-tunables
.7.gz
239 %attr(0700,root
,root
) %dir %{_localstatedir}/lib
/ctdb
240 %attr(0700,root
,root
) %dir %{_localstatedir}/lib
/ctdb
/*
241 %attr(0700,root
,root
) %dir %{_localstatedir}/run
/ctdb
245 Summary: CTDB development libraries
246 Group: Development
/Libraries
249 development libraries
for ctdb
252 %defattr(-,root
,root
)
255 Summary: CTDB
test suite
256 Group: Development
/Tools
257 Requires: ctdb
= %{version}
258 Requires: nc
, tcpdump
264 %defattr(-,root
,root
)
265 %dir %{_datadir}/%{name}/tests
266 %{_datadir}/%{name}/tests
/*
267 %dir %{_libexecdir}/%{name}/tests
268 %{_libexecdir}/%{name}/tests
/*
269 %{_bindir}/ctdb_run_tests
270 %{_bindir}/ctdb_run_cluster_tests
271 %{_bindir}/ctdb_local_daemons
277 Summary: CTDB PCP pmda support
278 Group: Development
/Tools
279 Requires: ctdb
= %{version}
282 %description pcp
-pmda
283 Performance Co
-Pilot
(PCP
) support
for CTDB
286 %dir %{_localstatedir}/lib
/pcp
/pmdas
/ctdb
287 %{_localstatedir}/lib
/pcp
/pmdas
/ctdb
/*