- up to 2.03.11, deprecation note
[packages/cman.git] / cman.spec
1 #
2 # Conditional build:
3 %bcond_with     libonly         # build package only with lib (needed bootstrap with ccs)
4 #
5 Summary:        General-purpose symmetric cluster manager
6 Summary(pl.UTF-8):      Zarządca symetrycznych klastrów ogólnego przeznaczenia
7 Name:           cman
8 Version:        2.03.10
9 Release:        2
10 License:        GPL v2
11 Group:          Applications/System
12 Source0:        ftp://sources.redhat.com/pub/cluster/releases/cluster-%{version}.tar.gz
13 # Source0-md5:  379b560096e315d4b52e238a5c72ba4a
14 Source1:        %{name}.init
15 Source2:        %{name}.sysconfig
16 URL:            http://sources.redhat.com/cluster/cman/
17 %{!?with_libonly:BuildRequires: ccs-devel >= 2.03.10}
18 BuildRequires:  ncurses-devel
19 BuildRequires:  openais-devel < 1.0
20 BuildRequires:  perl-base
21 Requires:       %{name}-libs = %{version}-%{release}
22 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
23
24 %define         _sbindir        /sbin
25
26 # aliasing problems in qdisk/disk.c
27 %define         specflags       -fno-strict-aliasing
28
29 %description
30 MAN is a symmetric, general-purpose, kernel-based cluster manager. It
31 has two parts. Connection Manager (cnxman) handles membership,
32 messaging, quorum, event notification and transitions. Service Manager
33 (sm) handles "service groups" which are a general way of representing
34 and managing instances of external systems that require cluster
35 management. The CMAN cluster manager is the foundational system upon
36 which DLM, GFS, CLVM, and Fence all depend. The CMAN API in the kernel
37 and userspace is general and available for other programs to use.
38
39 %description -l pl.UTF-8
40 MAN to zarządca opartych na jądrze symetrycznych klastrów ogólnego
41 przeznaczenia. Składa się z dwóch części. Zarządca połączeń
42 (Connection Manager, cnxman) obsługuje członkostwo, komunikację,
43 kworum, powiadamianie o zdarzeniach i przejścia. Zarządca usług
44 (Service Manager, sm) obsługuje "grupy usług", które są ogólnym
45 sposobem reprezentacji i zarządzania instancjami zewnętrznych systemów
46 wymagających zarządzania klastrem. Zarządca klastrów CMAN to
47 podstawowy system, na którym polegają DLM, GFS, CLVM i Fence. API
48 CMAN-a w jądrze i przestrzeni użytkownika jest ogólne i w całości
49 dostępne do wykorzystania w innych programach.
50
51 %package libs
52 Summary:        CMAN library
53 Summary(pl.UTF-8):      Biblioteka CMAN
54 Group:          Libraries
55 Obsoletes:      gulm
56 Obsoletes:      gulm-devel
57 Obsoletes:      gulm-static
58 Obsoletes:      iddev
59 Obsoletes:      magma
60 Obsoletes:      magma-devel
61 Obsoletes:      magma-plugins
62 Obsoletes:      magma-static
63 Conflicts:      cman < 2.00.00-2
64
65 %description libs
66 CMAN library.
67
68 %description libs -l pl.UTF-8
69 Biblioteka CMAN.
70
71 %package devel
72 Summary:        CMAN header files
73 Summary(pl.UTF-8):      Pliki nagłówkowe CMAN
74 Group:          Development/Libraries
75 Requires:       %{name}-libs = %{version}-%{release}
76
77 %description devel
78 CMAN header files.
79
80 %description devel -l pl.UTF-8
81 Pliki nagłówkowe CMAN.
82
83 %package static
84 Summary:        CMAN static library
85 Summary(pl.UTF-8):      Biblioteka statyczna CMAN
86 Group:          Development/Libraries
87 Requires:       %{name}-devel = %{version}-%{release}
88
89 %description static
90 CMAN static library.
91
92 %description static -l pl.UTF-8
93 Biblioteka statyczna CMAN.
94
95 %prep
96 %setup -q -n cluster-%{version}
97
98 # there are warnings caused by some unused variables
99 %{__sed} -i -e 's/-Werror //' %{name}/qdisk/Makefile
100
101 %build
102 ./configure \
103         --cc="%{__cc}" \
104         --cflags="%{rpmcflags} -Wall" \
105         --ldflags="%{rpmldflags}" \
106         --incdir=%{_includedir} \
107         --ncursesincdir=%{_includedir}/ncurses \
108         --libdir=%{_libdir} \
109         --libexecdir=%{_libdir} \
110         --mandir=%{_mandir} \
111         --prefix=%{_prefix} \
112         --sbindir=%{_sbindir} \
113         --without_gfs \
114         --without_gfs2 \
115         --without_gnbd \
116         --without_kernel_modules
117
118 %{__make} -C %{name}%{?with_libonly:/lib}
119
120 %install
121 rm -rf $RPM_BUILD_ROOT
122 install -d $RPM_BUILD_ROOT{/etc/sysconfig,/etc/rc.d/init.d}
123
124 %{__make} -C %{name}%{?with_libonly:/lib} install \
125         DESTDIR=$RPM_BUILD_ROOT
126
127 %if %{without libonly}
128 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
129 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
130 %endif
131
132 %clean
133 rm -rf $RPM_BUILD_ROOT
134
135 %post
136 /sbin/chkconfig --add %{name}
137
138 %preun
139 if [ "$1" = "0" ]; then
140         %service -q %{name} stop
141         /sbin/chkconfig --del %{name}
142 fi
143
144 %post   libs -p /sbin/ldconfig
145 %postun libs -p /sbin/ldconfig
146
147 %if %{without libonly}
148 %files
149 %defattr(644,root,root,755)
150 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
151 %attr(754,root,root) /etc/rc.d/init.d/%{name}
152 # TODO: PLDify
153 #%attr(754,root,root) /etc/rc.d/init.d/qdiskd
154 %attr(755,root,root) %{_sbindir}/cman_tool
155 %attr(755,root,root) %{_sbindir}/mkqdisk
156 %attr(755,root,root) %{_sbindir}/qdiskd
157 %attr(755,root,root) %{_libdir}/lcrso/service_cman.lcrso
158 %{_mandir}/man5/cman.5*
159 %{_mandir}/man5/qdisk.5*
160 %{_mandir}/man8/cman_tool.8*
161 %{_mandir}/man8/mkqdisk.8*
162 %{_mandir}/man8/qdiskd.8*
163 %endif
164
165 %files libs
166 %defattr(644,root,root,755)
167 %attr(755,root,root) %{_libdir}/libcman.so.*.*
168 %attr(755,root,root) %ghost %{_libdir}/libcman.so.2
169
170 %files devel
171 %defattr(644,root,root,755)
172 %attr(755,root,root) %{_libdir}/libcman.so
173 %{_includedir}/libcman.h
174
175 %files static
176 %defattr(644,root,root,755)
177 %{_libdir}/libcman.a
This page took 0.065914 seconds and 3 git commands to generate.