]> TLD Linux GIT Repositories - packages/lvm2.git/blob - lvm2.spec
- updated to 2.02.177, partial PLD merge
[packages/lvm2.git] / lvm2.spec
1 # TODO
2 # - vgscan --ignorelocking failure creates /var/lock/lvm (even if /var is not yet mounted)
3 # - spec default value for --with-replicators (=internal/shared/none, configure default is none)?
4 #   (also internal vs shared for lvm1,pool,cluster,snapshots,mirrors,raid,replicators,thin,cache;
5 #    note: dmeventd requires mirrors=internal)
6 #
7 # Conditional build:
8 # - initrd stuff
9 %bcond_with     initrd          # build initrd version
10 %bcond_without  uClibc          # link initrd version with uClibc
11 %bcond_with     dietlibc        # link initrd version with dietlibc
12 %bcond_with     glibc           # link initrd version with static GLIBC
13 # - functionality
14 %bcond_without  cluster         # disable all cluster support (clvmd&cmirrord)
15 %bcond_without  lvmetad         # lvmetad (and lvmlockd)
16 %bcond_without  lvmdbusd        # lvmdbusd
17 %bcond_without  lvmpolld        # lvmpolld (and lvmlockd)
18 %bcond_without  lvmlockd        # lvmlockd
19 %bcond_with     sanlock         # sanlock support in lvmlockd
20 %bcond_with     replicator      # internal replicator support
21 # - additional features
22 %bcond_without  selinux         # SELinux support
23 # - bindings
24 %bcond_without  python          # Python bindings
25 %bcond_without  python2         # Python 2 binding
26 %bcond_without  python3         # Python 3 binding and lvmdbusd
27
28 # lvmlockd requires lvmetad and lvmpolld
29 %if %{without lvmetad} || %{without lvmpolld}
30 %undefine       with_lvmpolld
31 %endif
32
33 # only glibc possible on SPARC
34 %ifarch sparc sparcv9 sparc64
35 %define         with_glibc 1
36 %endif
37 # if one of the *libc is enabled disable default dietlibc
38 %if %{with dietlibc} && %{with uClibc}
39 %undefine       with_dietlibc
40 %endif
41 # with glibc disables default dietlibc
42 %if %{with glibc} && %{with dietlibc}
43 %undefine       with_dietlibc
44 %endif
45 # fallback is glibc if neither alternatives are enabled
46 %if %{without dietlibc} && %{without uClibc}
47 %define         with_glibc      1
48 %endif
49 # for convenience
50 %if %{without python}
51 %undefine       with_python2
52 %undefine       with_python3
53 %endif
54 %if %{without python3}
55 %undefine       with_lvmdbusd
56 %endif
57
58 Summary:        The new version of Logical Volume Manager for Linux
59 Summary(pl.UTF-8):      Nowa wersja Logical Volume Managera dla Linuksa
60 Name:           lvm2
61 Version:        2.02.177
62 Release:        1
63 License:        GPL v2 and LGPL v2.1
64 Group:          Applications/System
65 Source0:        ftp://sources.redhat.com/pub/lvm2/LVM2.%{version}.tgz
66 # Source0-md5:  ee6cfbc5a0c5696ffae79dac04ee7a2b
67 Source3:        clvmd.sysconfig
68 Patch0:         %{name}-selinux.patch
69 Patch1:         %{name}-diet.patch
70 Patch2:         device-mapper-dmsetup-export.patch
71 Patch3:         %{name}-tld_init.patch
72 Patch4:         dl-dlsym.patch
73 Patch8:         %{name}-clvmd_cmd_timeout.patch
74 Patch9:         device-mapper-dmsetup-deps-export.patch
75 Patch11:        %{name}-thin.patch
76 URL:            http://www.sourceware.org/lvm2/
77 BuildRequires:  autoconf >= 2.69
78 BuildRequires:  automake
79 # for /run detection
80 BuildRequires:  filesystem >= 3.0-43
81 BuildRequires:  libblkid-devel >= 2.24
82 %{?with_selinux:BuildRequires:  libselinux-devel >= 1.10}
83 %{?with_selinux:BuildRequires:  libsepol-devel}
84 BuildRequires:  ncurses-devel
85 BuildRequires:  pkgconfig
86 %{?with_python2:BuildRequires:  python-devel >= 2}
87 %{?with_python3:BuildRequires:  python3-devel >= 1:3.2}
88 %if %{with lvmdbusd}
89 BuildRequires:  python3-dbus
90 BuildRequires:  python3-pyudev
91 %endif
92 BuildRequires:  readline-devel
93 BuildRequires:  rpmbuild(macros) >= 1.647
94 %{?with_sanlock:BuildRequires:  sanlock-devel >= 3.3.0}
95 BuildRequires:  udev-devel >= 1:176
96 %if %{with initrd}
97 %if %{with dietlibc}
98 BuildRequires:  dietlibc-static >= 2:0.32-7
99 BuildConflicts: device-mapper-dietlibc
100 %endif
101 %if %{with glibc}
102 %{?with_selinux:BuildRequires:  libselinux-static}
103 %{?with_selinux:BuildRequires:  libsepol-static}
104 %endif
105 %{?with_glibc:BuildRequires:    glibc-static}
106 %{?with_uClibc:BuildRequires:   uClibc-static >= 2:0.9.29}
107 %endif
108 %if %{with cluster}
109 BuildRequires:  corosync-devel
110 BuildRequires:  dlm-devel >= 3.99.5
111 %endif
112 Requires(post,postun):  /sbin/chkconfig
113 Requires:       device-mapper >= %{version}-%{release}
114 %{?with_selinux:Requires:       libselinux >= 1.10}
115 # doesn't work with 2.4 kernels
116 Requires:       uname(release) >= 2.6
117 Suggests:       thin-provisioning-tools >= 0.5.4
118 Obsoletes:      lvm
119 Obsoletes:      lvm2-systemd
120 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
121
122 %define         _sbindir        /sbin
123 %define         _usrsbindir     /usr/sbin
124
125 # changing CFLAGS in the middle confuses confcache
126 %undefine       configure_cache
127
128 # borken on AC
129 %define         filterout_ld    -Wl,--as-needed
130
131 # causes: undefined reference to `__stack_chk_fail_local'
132 %define         filterout_c     -fstack-protector
133
134 # for some reason known only to rpm there must be "\\|" not "\|" here
135 %define         dietarch        %(echo %{_target_cpu} | sed -e 's/i.86\\|pentium.\\|athlon/i386/;s/amd64/x86_64/;s/armv.*/arm/')
136 %define         dietlibdir      %{_prefix}/lib/dietlibc/lib-%{dietarch}
137
138 %define         skip_post_check_so      '.*libdevmapper-event-lvm2.so.*'
139
140 %description
141 This package includes a number of utilities for creating, checking,
142 and repairing logical volumes.
143
144 %description -l pl.UTF-8
145 Pakiet ten zawiera narzędzia do tworzenia, sprawdzania i naprawiania
146 logicznych wolumenów dyskowych (LVM2).
147
148 %package initrd
149 Summary:        The new version of Logical Volume Manager for Linux - initrd version
150 Summary(pl.UTF-8):      Nowa wersja Logical Volume Managera dla Linuksa - wersja dla initrd
151 Group:          Base
152 Conflicts:      geninitrd < 10000.18
153
154 %description initrd
155 This package includes a number of utilities for creating, checking,
156 and repairing logical volumes - staticaly linked for initrd.
157
158 %description initrd -l pl.UTF-8
159 Pakiet ten zawiera narzędzia do tworzenia, sprawdzania i naprawiania
160 logicznych wolumenów dyskowych (LVM2) - statycznie skonsolidowane na
161 potrzeby initrd.
162
163 %package clvmd
164 Summary:        Cluster LVM daemon
165 Summary(pl.UTF-8):      Demon clustra LVM
166 Group:          Applications/System
167 Requires:       %{name} = %{version}-%{release}
168
169 %description clvmd
170 clvmd is the daemon that distributes LVM metadata updates around a
171 cluster. It must be running on all nodes in the cluster and will give
172 an error if a node in the cluster does not have this daemon running.
173
174 %description clvmd -l pl.UTF-8
175 clvmd to demon który rozprowadza zmiany meta-danych LVM po klastrze.
176 Mysi działać na wszystkich węzłach klastra i zgłosi błąd gdy jakiś
177 węzeł w klastrze nie ma tego demona uruchomionego.
178
179 %package cmirrord
180 Summary:        Cluster mirror log daemon
181 Summary(pl.UTF-8):      Demon śledzący log lustrzany w klastrze
182 Group:          Applications/System
183 Requires:       %{name} = %{version}-%{release}
184
185 %description cmirrord
186 cmirrord is the daemon that tracks mirror log information in a
187 cluster. It is specific to device-mapper based mirrors (and by
188 extension, LVM cluster mirrors). Cluster mirrors are not possible
189 without this daemon running.
190
191 This daemon relies on the cluster infrastructure provided by the
192 Cluster MANager (CMAN), which must be set up and running in order for
193 cmirrord to function.
194
195 %description cmirrord
196 cmirrord to demon śledzący informacje logu lustrzanego w klastrze.
197 Jest specyficzny dla klastrów lustrzanych opartych na device-mapperze
198 (oraz, poprzez rozszerzenie, klastrów lustrzanych LVM). W klastrach
199 lustrzanych ten demon jest niezbędny.
200
201 Ten demon polega na infrastrukturze klastra dostarczanej przez CMAN
202 (Cluster MANager), który musi być skonfigurowany i działający, aby
203 działał cmirrord.
204
205 %package dbusd
206 Summary:        LVM2 D-Bus daemon
207 Summary(pl.UTF-8):      Demon LVM2 D-Bus
208 Group:          Daemons
209 Requires:       %{name} = %{version}-%{release}
210 Requires:       python3-dbus
211 Requires:       python3-pygobject3 >= 3
212 Requires:       python3-pyudev
213
214 %description dbusd
215 Daemon for access to LVM2 functionality through a D-Bus interface.
216
217 %description dbusd -l pl.UTF-8
218 Demon umożliwiający dostęp do funkcjonalności LVM2 poprzez interfejs
219 D-Bus.
220
221 %package lockd
222 Summary:        LVM2 locking daemon
223 Summary(pl.UTF-8):      Demon blokad LVM2
224 Group:          Daemons
225 Requires:       %{name} = %{version}-%{release}
226 %{?with_cluster:Requires:       dlm-libs >= 3.99.5}
227 %{?with_sanlock:Requires:       sanlock-libs >= 3.3.0}
228
229 %description lockd
230 LVM commands use lvmlockd to coordinate access to shared storage.
231
232 %description lockd -l pl.UTF-8
233 Polecenia LVM wykorzystują lvmlockd do koordynowania dostępu do
234 współdzielonej pamięci masowej.
235
236 %package resource-agents
237 Summary:        OCF Resource Agents for LVM2 processes
238 Summary(pl.UTF-8):      Agenci OCF do monitorowania procesów LVM2
239 Group:          Applications/System
240 Requires:       %{name} = %{version}-%{release}
241 Requires:       resource-agents
242
243 %description resource-agents
244 OCF Resource Agents for LVM2 processes.
245
246 %description resource-agents -l pl.UTF-8
247 Agenci OCF do monitorowania procesów LVM2.
248
249 %package -n python-lvm
250 Summary:        Python 2 interface to LVM2
251 Summary(pl.UTF-8):      Interfejs Pythona 2 do LVM2
252 Group:          Libraries/Python
253 Requires:       device-mapper-libs = %{version}-%{release}
254
255 %description -n python-lvm
256 Python 2 interface to LVM2.
257
258 %description -n python-lvm -l pl.UTF-8
259 Interfejs Pythona 2 do LVM2.
260
261 %package -n python3-lvm
262 Summary:        Python 3 interface to LVM2
263 Summary(pl.UTF-8):      Interfejs Pythona 3 do LVM2
264 Group:          Libraries/Python
265 Requires:       device-mapper-libs = %{version}-%{release}
266
267 %description -n python3-lvm
268 Python 3 interface to LVM2.
269
270 %description -n python3-lvm -l pl.UTF-8
271 Interfejs Pythona 3 do LVM2.
272
273 %package -n device-mapper
274 Summary:        Userspace support for the device-mapper
275 Summary(pl.UTF-8):      Wsparcie dla mapowania urządzeń w przestrzeni użytkownika
276 Group:          Base
277 Requires(post,postun):  /sbin/ldconfig
278 Requires:       device-mapper-libs = %{version}-%{release}
279
280 %description -n device-mapper
281 The goal of this driver is to support volume management. The driver
282 enables the definition of new block devices composed of ranges of
283 sectors of existing devices. This can be used to define disk
284 partitions - or logical volumes. This light-weight kernel component
285 can support user-space tools for logical volume management.
286
287 %description -n device-mapper -l pl.UTF-8
288 Celem tego sterownika jest obsługa zarządzania wolumenami. Sterownik
289 włącza definiowanie nowych urządzeń blokowych złożonych z przedziałów
290 sektorów na istniejących urządzeniach. Może to być wykorzystane do
291 definiowania partycji na dysku lub logicznych wolumenów. Ten lekki
292 składnik jądra może wspierać działające w przestrzeni użytkownika
293 narzędzia do zarządzania logicznymi wolumenami.
294
295 %package -n device-mapper-libs
296 Summary:        Device-mapper shared libraries
297 Summary(pl.UTF-8):      Biblioteki współdzielone device-mappera
298 Group:          Libraries
299 Requires:       libblkid >= 2.24
300 Requires:       udev-libs >= 1:176
301 Conflicts:      device-mapper < 2.02.119-1
302
303 %description -n device-mapper-libs
304 Device-mapper shared libraries.
305
306 %description -n device-mapper-libs -l pl.UTF-8
307 Biblioteki współdzielone device-mappera.
308
309 %package -n device-mapper-devel
310 Summary:        Header files for device-mapper libraries
311 Summary(pl.UTF-8):      Pliki nagłówkowe bibliotek device-mappera
312 Group:          Development/Libraries
313 Requires:       device-mapper-libs = %{version}-%{release}
314 Requires:       libblkid-devel >= 2.24
315 %if %{with selinux}
316 Requires:       libselinux-devel
317 Requires:       libsepol-devel
318 %endif
319 Requires:       udev-devel >= 1:176
320
321 %description -n device-mapper-devel
322 Header files for device-mapper libraries.
323
324 %description -n device-mapper-devel -l pl.UTF-8
325 Pliki nagłówkowe bibliotek device-mappera.
326
327 %package -n device-mapper-static
328 Summary:        Static devmapper library
329 Summary(pl.UTF-8):      Statyczna biblioteka devmapper
330 License:        LGPL v2.1
331 Group:          Development/Libraries
332 Requires:       device-mapper-devel = %{version}-%{release}
333
334 %description -n device-mapper-static
335 Static devmapper library.
336
337 %description -n device-mapper-static -l pl.UTF-8
338 Statyczna biblioteka devmapper.
339
340 %package -n device-mapper-dietlibc
341 Summary:        Static devmapper library built with dietlibc
342 Summary(pl.UTF-8):      Statyczna biblioteka devmapper zbudowana z dietlibc
343 License:        LGPL v2.1
344 Group:          Development/Libraries
345 Requires:       device-mapper-devel = %{version}-%{release}
346
347 %description -n device-mapper-dietlibc
348 Static devmapper library built with dietlibc.
349
350 %description -n device-mapper-dietlibc -l pl.UTF-8
351 Statyczna biblioteka devmapper zbudowana z dietlibc.
352
353 %package -n device-mapper-initrd
354 Summary:        Userspace support for the device-mapper - initrd version
355 Summary(pl.UTF-8):      Wsparcie dla mapowania urządzeń w przestrzeni użytkownika - wersja dla initrd
356 Group:          Base
357 Obsoletes:      device-mapper-initrd-devel
358 Conflicts:      geninitrd < 10000.10
359
360 %description -n device-mapper-initrd
361 The goal of this driver is to support volume management. The driver
362 enables the definition of new block devices composed of ranges of
363 sectors of existing devices. This can be used to define disk
364 partitions - or logical volumes. This light-weight kernel component
365 can support user-space tools for logical volume management.
366
367 This package contains dmsetup program linked staticaly for use in
368 initrd.
369
370 %description -n device-mapper-initrd -l pl.UTF-8
371 Celem tego sterownika jest obsługa zarządzania wolumenami. Sterownik
372 włącza definiowanie nowych urządzeń blokowych złożonych z przedziałów
373 sektorów na istniejących urządzeniach. Może to być wykorzystane do
374 definiowania partycji na dysku lub logicznych wolumenów. Ten lekki
375 składnik jądra może wspierać działające w przestrzeni użytkownika
376 narzędzia do zarządzania logicznymi wolumenami.
377
378 Ten pakiet zawiera program dmsetup skonsolidowany statycznie na
379 potrzeby initrd.
380
381 %prep
382 %setup -q -n LVM2.%{version}
383 %{?with_selinux:%patch0 -p1}
384 %patch1 -p1
385 %patch2 -p1
386 %patch3 -p1
387 %patch4 -p1
388 %patch8 -p1
389 %patch9 -p1
390 %patch11 -p1
391
392 # do not force --export-symbol linker option for e.g. statically linked executables
393 # -rdynamic compiler option drives linker in the right way.
394 %{__sed} -i -e 's#-Wl,--export-dynamic#-rdynamic#g' configure.in
395
396 %build
397 %if %{with initrd}
398 echo Using %{?with_glibc:GLIBC} %{?with_uClibc:uClibc} %{?with_dietlibc:diet} for initrd
399 %endif
400 cp -f /usr/share/automake/config.sub autoconf
401 %{__aclocal}
402 %{__autoconf}
403
404 %if %{with initrd}
405 %{?with_glibc:export CC="%{__cc}"}
406 %{?with_uClibc:export CC="%{_target_cpu}-uclibc-gcc"}
407 %{?with_dietlibc:cc="%{__cc}"; export CC="diet ${cc#ccache }"}
408
409 %configure \
410         ac_cv_lib_dl_dlopen=no \
411         %{?with_uClibc:ac_cv_func_siginterrupt=no} \
412         %{?debug:--enable-debug} \
413         --disable-nls \
414         --disable-readline \
415         --enable-selinux%{!?with_glibc:=no} \
416         --enable-static_link \
417         --with-lvm1=internal \
418         --with-optimisation="%{rpmcflags} -Os"
419 # glibc version links with normal static libdevicemapper which has selinux enabled
420 # and we need to keep these in sync between device-mapper and lvm2
421
422 %{__sed} -i -e 's#rpl_malloc#malloc#g' lib/misc/configure.h
423 %{__sed} -i -e 's#rpl_realloc#realloc#g' lib/misc/configure.h
424
425 %{__make} -j1 -C include
426 %{__make} -j1 -C lib LIB_SHARED= VERSIONED_SHLIB=
427 %{__make} -j1 -C libdm LIB_SHARED= VERSIONED_SHLIB=
428 %{__make} -j1 -C libdaemon/client LIB_SHARED= VERSIONED_SHLIB=
429 %{__make} -j1 -C tools dmsetup.static lvm.static %{?with_dietlibc:DIETLIBC_LIBS="-lcompat"}
430 %{__mv} tools/lvm.static initrd-lvm
431 %{__mv} tools/dmsetup.static initrd-dmsetup
432
433 # check if tools works
434 for tool in initrd-lvm initrd-dmsetup; do
435         LVM_SYSTEM_DIR=$(pwd) ./$tool help && rc=$? || rc=$?
436         if [ $rc -gt 127 ]; then
437                 echo >&2 "Unexpected failure (exit status: $rc) from $tool. Does this tool work?!"
438                 exit 1
439         fi
440 done
441
442 %{?with_dietlibc:%{__mv} libdm/ioctl/libdevmapper.a diet-libdevmapper.a}
443 %{__make} clean
444
445 unset CC
446 %endif
447
448 %configure \
449         --enable-applib \
450         --enable-cache_check_needs_check \
451         --enable-cmdlib \
452         %{?with_lvmdbusd:--enable-dbus-service} \
453         %{?debug:--enable-debug} \
454         --enable-dmeventd \
455         --enable-fsadm \
456         --with-default-locking-dir=/var/lock/lvm \
457 %if %{with lvmlockd}
458         %{?with_cluster:--enable-lvmlockd-dlm} \
459         %{?with_sanlock:--enable-lvmlockd-sanlock} \
460 %endif
461         %{?with_lvmetad:--enable-lvmetad} \
462         --enable-lvmpolld \
463         --enable-ocf \
464         %{?with_python2:--enable-python2_bindings} \
465         %{?with_python3:--enable-python3_bindings} \
466         --enable-readline \
467         %{!?with_selinux:--disable-selinux} \
468         --enable-pkgconfig \
469         --enable-thin_check_needs_check \
470         --enable-udev_sync \
471         --enable-udev_rules \
472         --with-cache=internal \
473         --with-cache-check=/usr/sbin/cache_check \
474         --with-cache-dump=/usr/sbin/cache_dump \
475         --with-cache-repair=/usr/sbin/cache_repair \
476         --with-cache-restore=/usr/sbin/cache_restore \
477         --with-cluster=internal \
478 %if %{with cluster}
479         --with-clvmd=corosync \
480         --enable-cmirrord \
481 %endif
482         --with-dmeventd-path=%{_sbindir}/dmeventd \
483         --with-interface=ioctl \
484         --with-lvm1=internal \
485         --with-mirrors=internal \
486         --with-optimisation="%{rpmcflags}" \
487         --with-pool=internal \
488         %{?with_replicator:--with-replicators=internal} \
489         --with-snapshots=internal \
490         --with-thin=internal \
491         --with-thin-check=/usr/sbin/thin_check \
492         --with-thin-dump=/usr/sbin/thin_dump \
493         --with-thin-repair=/usr/sbin/thin_repair \
494         --with-thin-restore=/usr/sbin/thin_restore \
495         --with-udev-prefix=/ \
496         --with-usrlibdir=%{_libdir}
497
498 # use bash because of "set -o pipefail"
499 %{__make} -j1 \
500         SHELL=/bin/bash
501 %{__make} -j1 -C libdm \
502         LIB_STATIC=libdevmapper.a
503
504 %install
505 rm -rf $RPM_BUILD_ROOT
506 install -d $RPM_BUILD_ROOT{/%{_lib},%{_sysconfdir}/lvm,/etc/sysconfig}
507 %{?with_dietlibc:install -d $RPM_BUILD_ROOT%{dietlibdir}}
508
509 %{__make} install install_system_dirs install_initscripts \
510         DESTDIR=$RPM_BUILD_ROOT \
511         OWNER="" \
512         GROUP="" \
513         python3dir=%{py3_sitescriptdir}
514
515 %if %{with cluster}
516 cp -p %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/clvmd
517 %endif
518
519 %{__mv} $RPM_BUILD_ROOT%{_libdir}/lib*.so.* $RPM_BUILD_ROOT/%{_lib}
520 for lib in $RPM_BUILD_ROOT/%{_lib}/lib*.so.*; do
521         lib=$(echo $lib | sed -e "s#$RPM_BUILD_ROOT##g")
522         slib=$(basename $lib | sed -e 's#\.so\..*#.so#g')
523         ln -sf $lib $RPM_BUILD_ROOT%{_libdir}/$slib
524 done
525
526 touch $RPM_BUILD_ROOT%{_sysconfdir}/lvm/lvm.conf
527
528 %if %{with initrd}
529 install -d $RPM_BUILD_ROOT%{_libdir}/initrd
530 install -p initrd-lvm $RPM_BUILD_ROOT%{_libdir}/initrd/lvm
531 install -p initrd-dmsetup $RPM_BUILD_ROOT%{_libdir}/initrd/dmsetup
532
533 %{?with_dietlibc:cp -a diet-libdevmapper.a $RPM_BUILD_ROOT%{dietlibdir}/libdevmapper.a}
534 %endif
535
536 cp -a libdm/libdevmapper.a $RPM_BUILD_ROOT%{_libdir}
537
538 %clean
539 rm -rf $RPM_BUILD_ROOT
540
541 %post
542 /sbin/chkconfig --add lvm2-monitor
543 %service lvm2-monitor restart
544 /sbin/chkconfig --add blk-availability
545 # no service blk-availability restart
546
547 %postun
548 if [ "$1" = "0" ]; then
549         %service lvm2-monitor stop
550         /sbin/chkconfig --del lvm2-monitor
551         #no service blk-availability stop
552         /sbin/chkconfig --del blk-availability
553 fi
554
555 %post   -n device-mapper-libs -p /sbin/ldconfig
556 %postun -n device-mapper-libs -p /sbin/ldconfig
557
558 %post clvmd
559 /sbin/chkconfig --add clvmd
560 # no service restart - it breaks current locks!
561 export NORESTART=1
562 # re-exec instead
563 /usr/sbin/clvmd -S 2>/dev/null || :
564
565 %preun clvmd
566 if [ "$1" = "0" ]; then
567         %service clvmd stop
568         /sbin/chkconfig --del clvmd
569 fi
570
571 %files
572 %defattr(644,root,root,755)
573 %doc README WHATS_NEW doc/*
574 %attr(755,root,root) %{_sbindir}/blkdeactivate
575 %attr(755,root,root) %{_sbindir}/fsadm
576 %attr(755,root,root) %{_sbindir}/lvchange
577 %attr(755,root,root) %{_sbindir}/lvconvert
578 %attr(755,root,root) %{_sbindir}/lvcreate
579 %attr(755,root,root) %{_sbindir}/lvdisplay
580 %attr(755,root,root) %{_sbindir}/lvextend
581 %attr(755,root,root) %{_sbindir}/lvm
582 %attr(755,root,root) %{_sbindir}/lvmconf
583 %attr(755,root,root) %{_sbindir}/lvmconfig
584 %attr(755,root,root) %{_sbindir}/lvmdiskscan
585 %attr(755,root,root) %{_sbindir}/lvmdump
586 %attr(755,root,root) %{_sbindir}/lvmsadc
587 %attr(755,root,root) %{_sbindir}/lvmsar
588 %attr(755,root,root) %{_sbindir}/lvreduce
589 %attr(755,root,root) %{_sbindir}/lvremove
590 %attr(755,root,root) %{_sbindir}/lvrename
591 %attr(755,root,root) %{_sbindir}/lvresize
592 %attr(755,root,root) %{_sbindir}/lvs
593 %attr(755,root,root) %{_sbindir}/lvscan
594 %attr(755,root,root) %{_sbindir}/pvchange
595 %attr(755,root,root) %{_sbindir}/pvck
596 %attr(755,root,root) %{_sbindir}/pvcreate
597 %attr(755,root,root) %{_sbindir}/pvdisplay
598 %attr(755,root,root) %{_sbindir}/pvmove
599 %attr(755,root,root) %{_sbindir}/pvremove
600 %attr(755,root,root) %{_sbindir}/pvresize
601 %attr(755,root,root) %{_sbindir}/pvs
602 %attr(755,root,root) %{_sbindir}/pvscan
603 %attr(755,root,root) %{_sbindir}/vgcfgbackup
604 %attr(755,root,root) %{_sbindir}/vgcfgrestore
605 %attr(755,root,root) %{_sbindir}/vgchange
606 %attr(755,root,root) %{_sbindir}/vgck
607 %attr(755,root,root) %{_sbindir}/vgconvert
608 %attr(755,root,root) %{_sbindir}/vgcreate
609 %attr(755,root,root) %{_sbindir}/vgdisplay
610 %attr(755,root,root) %{_sbindir}/vgexport
611 %attr(755,root,root) %{_sbindir}/vgextend
612 %attr(755,root,root) %{_sbindir}/vgimport
613 %attr(755,root,root) %{_sbindir}/vgimportclone
614 %attr(755,root,root) %{_sbindir}/vgmerge
615 %attr(755,root,root) %{_sbindir}/vgmknodes
616 %attr(755,root,root) %{_sbindir}/vgreduce
617 %attr(755,root,root) %{_sbindir}/vgremove
618 %attr(755,root,root) %{_sbindir}/vgrename
619 %attr(755,root,root) %{_sbindir}/vgs
620 %attr(755,root,root) %{_sbindir}/vgscan
621 %attr(755,root,root) %{_sbindir}/vgsplit
622 %{_mandir}/man5/lvm.conf.5*
623 %{_mandir}/man7/lvmcache.7*
624 %{_mandir}/man7/lvmraid.7*
625 %{_mandir}/man7/lvmreport.7*
626 %{_mandir}/man7/lvmsystemid.7*
627 %{_mandir}/man7/lvmthin.7*
628 %{_mandir}/man8/blkdeactivate.8*
629 %{_mandir}/man8/fsadm.8*
630 %{_mandir}/man8/lvchange.8*
631 %{_mandir}/man8/lvconvert.8*
632 %{_mandir}/man8/lvcreate.8*
633 %{_mandir}/man8/lvdisplay.8*
634 %{_mandir}/man8/lvextend.8*
635 %{_mandir}/man8/lvm-config.8*
636 %{_mandir}/man8/lvm-dumpconfig.8*
637 %{_mandir}/man8/lvm-fullreport.8*
638 %{_mandir}/man8/lvm-lvpoll.8*
639 %{_mandir}/man8/lvm.8*
640 %{_mandir}/man8/lvmconf.8*
641 %{_mandir}/man8/lvmconfig.8*
642 %{_mandir}/man8/lvmdiskscan.8*
643 %{_mandir}/man8/lvmdump.8*
644 %{_mandir}/man8/lvmsadc.8*
645 %{_mandir}/man8/lvmsar.8*
646 %{_mandir}/man8/lvreduce.8*
647 %{_mandir}/man8/lvremove.8*
648 %{_mandir}/man8/lvrename.8*
649 %{_mandir}/man8/lvresize.8*
650 %{_mandir}/man8/lvs.8*
651 %{_mandir}/man8/lvscan.8*
652 %{_mandir}/man8/pvchange.8*
653 %{_mandir}/man8/pvck.8*
654 %{_mandir}/man8/pvcreate.8*
655 %{_mandir}/man8/pvdisplay.8*
656 %{_mandir}/man8/pvmove.8*
657 %{_mandir}/man8/pvremove.8*
658 %{_mandir}/man8/pvresize.8*
659 %{_mandir}/man8/pvs.8*
660 %{_mandir}/man8/pvscan.8*
661 %{_mandir}/man8/vgcfgbackup.8*
662 %{_mandir}/man8/vgcfgrestore.8*
663 %{_mandir}/man8/vgchange.8*
664 %{_mandir}/man8/vgck.8*
665 %{_mandir}/man8/vgconvert.8*
666 %{_mandir}/man8/vgcreate.8*
667 %{_mandir}/man8/vgdisplay.8*
668 %{_mandir}/man8/vgexport.8*
669 %{_mandir}/man8/vgextend.8*
670 %{_mandir}/man8/vgimport.8*
671 %{_mandir}/man8/vgimportclone.8*
672 %{_mandir}/man8/vgmerge.8*
673 %{_mandir}/man8/vgmknodes.8*
674 %{_mandir}/man8/vgreduce.8*
675 %{_mandir}/man8/vgremove.8*
676 %{_mandir}/man8/vgrename.8*
677 %{_mandir}/man8/vgs.8*
678 %{_mandir}/man8/vgscan.8*
679 %{_mandir}/man8/vgsplit.8*
680 %attr(750,root,root) %dir %{_sysconfdir}/lvm
681 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lvm/lvm.conf
682 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lvm/lvmlocal.conf
683 %attr(750,root,root) %dir %{_sysconfdir}/lvm/profile
684 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lvm/profile/cache-mq.profile
685 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lvm/profile/cache-smq.profile
686 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lvm/profile/command_profile_template.profile
687 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lvm/profile/metadata_profile_template.profile
688 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lvm/profile/thin-generic.profile
689 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lvm/profile/thin-performance.profile
690 %dir %{_sysconfdir}/lvm/cache
691 %ghost %{_sysconfdir}/lvm/cache/.cache
692 %attr(754,root,root) /etc/rc.d/init.d/blk-availability
693 %attr(754,root,root) /etc/rc.d/init.d/lvm2-monitor
694 %attr(700,root,root) %dir /run/lvm
695 %attr(700,root,root) %dir /var/lock/lvm
696 %if %{with lvmetad}
697 %attr(755,root,root) %{_sbindir}/lvmetad
698 /lib/udev/rules.d/69-dm-lvm-metad.rules
699 %attr(754,root,root) /etc/rc.d/init.d/lvm2-lvmetad
700 %{_mandir}/man8/lvmetad.8*
701 %endif
702 %if %{with lvmlockd}
703 %attr(755,root,root) %{_sbindir}/lvmlockctl
704 %attr(755,root,root) %{_sbindir}/lvmlockd
705 %{_mandir}/man8/lvmlockctl.8*
706 %{_mandir}/man8/lvmlockd.8*
707 %endif
708 %if %{with lvmpolld}
709 %attr(755,root,root) %{_sbindir}/lvmpolld
710 %attr(754,root,root) /etc/rc.d/init.d/lvm2-lvmpolld
711 %{_mandir}/man8/lvmpolld.8*
712 %endif
713
714 %if %{with cluster}
715 %files clvmd
716 %defattr(644,root,root,755)
717 %attr(755,root,root) %{_usrsbindir}/clvmd
718 %attr(754,root,root) /etc/rc.d/init.d/clvmd
719 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/clvmd
720 %{_mandir}/man8/clvmd.8*
721
722 %files cmirrord
723 %defattr(644,root,root,755)
724 %attr(755,root,root) %{_usrsbindir}/cmirrord
725 %attr(754,root,root) /etc/rc.d/init.d/cmirrord
726 %{_mandir}/man8/cmirrord.8*
727 %endif
728
729 %if %{with lvmdbusd}
730 %files dbusd
731 %defattr(644,root,root,755)
732 %attr(755,root,root) %{_sbindir}/lvmdbusd
733 %{py3_sitescriptdir}/lvmdbusd
734 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lvm/profile/lvmdbusd.profile
735 #%config(noreplace) %verify(not md5 mtime size) /etc/dbus-1/system.d/com.redhat.lvmdbus1.conf
736 #%{_datadir}/dbus-1/system-services/com.redhat.lvmdbus1.service
737 %{_mandir}/man8/lvmdbusd.8*
738 %endif
739
740 %files resource-agents
741 %defattr(644,root,root,755)
742 %dir %{_prefix}/lib/ocf/resource.d/lvm2
743 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/lvm2/VolumeGroup
744
745 %if %{with python2}
746 %files -n python-lvm
747 %defattr(644,root,root,755)
748 %attr(755,root,root) %{py_sitedir}/lvm.so
749 %{py_sitedir}/lvm-%{version}_*-py*.egg-info
750 %endif
751
752 %if %{with python3}
753 %files -n python3-lvm
754 %defattr(644,root,root,755)
755 %attr(755,root,root) %{py3_sitedir}/lvm.cpython-*.so
756 %{py3_sitedir}/lvm-%{version}_*-py*.egg-info
757 %endif
758
759 %files -n device-mapper
760 %defattr(644,root,root,755)
761 %doc *_DM
762 /lib/udev/rules.d/10-dm.rules
763 /lib/udev/rules.d/11-dm-lvm.rules
764 /lib/udev/rules.d/13-dm-disk.rules
765 /lib/udev/rules.d/95-dm-notify.rules
766 %attr(755,root,root) %{_sbindir}/dmeventd
767 %attr(755,root,root) %{_sbindir}/dmsetup
768 %attr(755,root,root) %{_sbindir}/dmstats
769 %attr(755,root,root) %{_libdir}/libdevmapper-event-lvm2mirror.so
770 %attr(755,root,root) %{_libdir}/libdevmapper-event-lvm2raid.so
771 %attr(755,root,root) %{_libdir}/libdevmapper-event-lvm2snapshot.so
772 %attr(755,root,root) %{_libdir}/libdevmapper-event-lvm2thin.so
773 %dir %{_libdir}/device-mapper
774 %attr(755,root,root) %{_libdir}/device-mapper/libdevmapper-event-lvm2mirror.so
775 %attr(755,root,root) %{_libdir}/device-mapper/libdevmapper-event-lvm2raid.so
776 %attr(755,root,root) %{_libdir}/device-mapper/libdevmapper-event-lvm2snapshot.so
777 %attr(755,root,root) %{_libdir}/device-mapper/libdevmapper-event-lvm2thin.so
778 %{_mandir}/man8/dmsetup.8*
779 %{_mandir}/man8/dmstats.8*
780 %{_mandir}/man8/dmeventd.8*
781
782 %files -n device-mapper-libs
783 %defattr(644,root,root,755)
784 %attr(755,root,root) /%{_lib}/libdevmapper.so.*.*
785 %attr(755,root,root) /%{_lib}/libdevmapper-event.so.*.*
786 %attr(755,root,root) /%{_lib}/libdevmapper-event-lvm2.so.*.*
787 %attr(755,root,root) /%{_lib}/liblvm2app.so.*.*
788 %attr(755,root,root) /%{_lib}/liblvm2cmd.so.*.*
789
790 %files -n device-mapper-devel
791 %defattr(644,root,root,755)
792 %attr(755,root,root) %{_libdir}/libdevmapper.so
793 %attr(755,root,root) %{_libdir}/libdevmapper-event.so
794 %attr(755,root,root) %{_libdir}/libdevmapper-event-lvm2.so
795 %attr(755,root,root) %{_libdir}/liblvm2app.so
796 %attr(755,root,root) %{_libdir}/liblvm2cmd.so
797 %{_includedir}/libdevmapper.h
798 %{_includedir}/libdevmapper-event.h
799 %{_includedir}/lvm2app.h
800 %{_includedir}/lvm2cmd.h
801 %{_pkgconfigdir}/devmapper.pc
802 %{_pkgconfigdir}/devmapper-event.pc
803 %{_pkgconfigdir}/lvm2app.pc
804
805 %files -n device-mapper-static
806 %defattr(644,root,root,755)
807 %{_libdir}/libdevmapper.a
808
809 %if %{with initrd}
810 %if %{with dietlibc}
811 %files -n device-mapper-dietlibc
812 %defattr(644,root,root,755)
813 %{dietlibdir}/libdevmapper.a
814 %endif
815
816 %files -n device-mapper-initrd
817 %defattr(644,root,root,755)
818 %attr(755,root,root) %{_libdir}/initrd/dmsetup
819
820 %files initrd
821 %defattr(644,root,root,755)
822 %attr(755,root,root) %{_libdir}/initrd/lvm
823 %endif