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