]> TLD Linux GIT Repositories - packages/lvm2.git/blobdiff - lvm2.spec
- updated to 2.02.181
[packages/lvm2.git] / lvm2.spec
index f50ac8bcaea68ea49a4b2ffb3c9a5d559a38f38c..53443f6c083e1b102f2fe1f9ca45d8a668fcfca0 100644 (file)
--- a/lvm2.spec
+++ b/lvm2.spec
@@ -1,66 +1,95 @@
 # TODO
 # - vgscan --ignorelocking failure creates /var/lock/lvm (even if /var is not yet mounted)
 # TODO
 # - vgscan --ignorelocking failure creates /var/lock/lvm (even if /var is not yet mounted)
-# - --with-replicators (=internal/shared/none, default is none)?
+# - spec default value for --with-replicators (=internal/shared/none, configure default is none)?
+#   (also internal vs shared for lvm1,pool,cluster,snapshots,mirrors,raid,replicators,thin,cache;
+#    note: dmeventd requires mirrors=internal)
 #
 # Conditional build:
 #
 # Conditional build:
-%bcond_with    initrd          # don't build initrd version
+# - initrd stuff
+%bcond_with    initrd          # build initrd version
 %bcond_without uClibc          # link initrd version with uClibc
 %bcond_with    dietlibc        # link initrd version with dietlibc
 %bcond_with    glibc           # link initrd version with static GLIBC
 %bcond_without uClibc          # link initrd version with uClibc
 %bcond_with    dietlibc        # link initrd version with dietlibc
 %bcond_with    glibc           # link initrd version with static GLIBC
+# - functionality
 %bcond_without  cluster                # disable all cluster support (clvmd&cmirrord)
 %bcond_without  cluster                # disable all cluster support (clvmd&cmirrord)
-%bcond_without lvmetad         # disable lvmetad
-%bcond_without selinux         # disable SELinux
-
-%ifarch sparc64 sparc
-%define                with_glibc 1
+%bcond_without lvmetad         # lvmetad (and lvmlockd)
+%bcond_without lvmdbusd        # lvmdbusd
+%bcond_without lvmpolld        # lvmpolld (and lvmlockd)
+%bcond_without lvmlockd        # lvmlockd
+%bcond_with    sanlock         # sanlock support in lvmlockd
+%bcond_with    replicator      # internal replicator support
+# - additional features
+%bcond_without selinux         # SELinux support
+# - bindings
+%bcond_without python          # Python bindings
+%bcond_without python2         # Python 2 binding
+%bcond_without python3         # Python 3 binding and lvmdbusd
+
+# lvmlockd requires lvmetad and lvmpolld
+%if %{without lvmetad} || %{without lvmpolld}
+%undefine      with_lvmpolld
 %endif
 
 # if one of the *libc is enabled disable default dietlibc
 %if %{with dietlibc} && %{with uClibc}
 %undefine      with_dietlibc
 %endif
 %endif
 
 # if one of the *libc is enabled disable default dietlibc
 %if %{with dietlibc} && %{with uClibc}
 %undefine      with_dietlibc
 %endif
-
 # with glibc disables default dietlibc
 %if %{with glibc} && %{with dietlibc}
 %undefine      with_dietlibc
 %endif
 # with glibc disables default dietlibc
 %if %{with glibc} && %{with dietlibc}
 %undefine      with_dietlibc
 %endif
-
 # fallback is glibc if neither alternatives are enabled
 %if %{without dietlibc} && %{without uClibc}
 %define                with_glibc      1
 %endif
 # fallback is glibc if neither alternatives are enabled
 %if %{without dietlibc} && %{without uClibc}
 %define                with_glibc      1
 %endif
+# for convenience
+%if %{without python}
+%undefine      with_python2
+%undefine      with_python3
+%endif
+%if %{without python3}
+%undefine      with_lvmdbusd
+%endif
 
 Summary:       The new version of Logical Volume Manager for Linux
 Summary(pl.UTF-8):     Nowa wersja Logical Volume Managera dla Linuksa
 Name:          lvm2
 
 Summary:       The new version of Logical Volume Manager for Linux
 Summary(pl.UTF-8):     Nowa wersja Logical Volume Managera dla Linuksa
 Name:          lvm2
-Version:       2.02.111
+Version:       2.02.181
 Release:       1
 License:       GPL v2 and LGPL v2.1
 Group:         Applications/System
 Source0:       ftp://sources.redhat.com/pub/lvm2/LVM2.%{version}.tgz
 Release:       1
 License:       GPL v2 and LGPL v2.1
 Group:         Applications/System
 Source0:       ftp://sources.redhat.com/pub/lvm2/LVM2.%{version}.tgz
-# Source0-md5: 02487ab2a9e02d1ee76fe217183df28a
-Source1:       %{name}-tmpfiles.conf
-Source2:       clvmd.service
+# Source0-md5: 7d6380d9a34981fd7b605eaa371295b3
 Source3:       clvmd.sysconfig
 Patch0:                %{name}-selinux.patch
 Patch1:                %{name}-diet.patch
 Patch2:                device-mapper-dmsetup-export.patch
 Patch3:                %{name}-tld_init.patch
 Patch4:                dl-dlsym.patch
 Source3:       clvmd.sysconfig
 Patch0:                %{name}-selinux.patch
 Patch1:                %{name}-diet.patch
 Patch2:                device-mapper-dmsetup-export.patch
 Patch3:                %{name}-tld_init.patch
 Patch4:                dl-dlsym.patch
-Patch6:                %{name}-lvm_path.patch
-Patch7:                %{name}-sd_notify.patch
-Patch8:                %{name}-clvmd_cmd_timeout.patch
-Patch9:                device-mapper-dmsetup-deps-export.patch
-URL:           http://sources.redhat.com/lvm2/
-BuildRequires: autoconf >= 2.61
+Patch5:                %{name}-run-dir.patch
+Patch6:                %{name}-clvmd_cmd_timeout.patch
+Patch7:                device-mapper-dmsetup-deps-export.patch
+Patch8:                %{name}-thin.patch
+URL:           http://www.sourceware.org/lvm2/
+BuildRequires: autoconf >= 2.69
 BuildRequires: automake
 BuildRequires: automake
+# for /run detection
+BuildRequires: filesystem >= 3.0-43
+BuildRequires: libblkid-devel >= 2.24
 %{?with_selinux:BuildRequires: libselinux-devel >= 1.10}
 %{?with_selinux:BuildRequires: libsepol-devel}
 BuildRequires: ncurses-devel
 BuildRequires: pkgconfig
 %{?with_selinux:BuildRequires: libselinux-devel >= 1.10}
 %{?with_selinux:BuildRequires: libsepol-devel}
 BuildRequires: ncurses-devel
 BuildRequires: pkgconfig
+%{?with_python2:BuildRequires: python-devel >= 2}
+%{?with_python3:BuildRequires: python3-devel >= 1:3.2}
+%if %{with lvmdbusd}
+BuildRequires: python3-dbus
+BuildRequires: python3-pyudev
+%endif
 BuildRequires: readline-devel
 BuildRequires: rpmbuild(macros) >= 1.647
 BuildRequires: readline-devel
 BuildRequires: rpmbuild(macros) >= 1.647
-BuildRequires: udev-devel >= 1:143
+%{?with_sanlock:BuildRequires: sanlock-devel >= 3.3.0}
+BuildRequires: udev-devel >= 1:176
 %if %{with initrd}
 %if %{with dietlibc}
 BuildRequires: dietlibc-static >= 2:0.32-7
 %if %{with initrd}
 %if %{with dietlibc}
 BuildRequires: dietlibc-static >= 2:0.32-7
@@ -76,15 +105,13 @@ BuildConflicts:    device-mapper-dietlibc
 %if %{with cluster}
 BuildRequires: corosync-devel
 BuildRequires: dlm-devel >= 3.99.5
 %if %{with cluster}
 BuildRequires: corosync-devel
 BuildRequires: dlm-devel >= 3.99.5
-BuildRequires: systemd-devel
 %endif
 %endif
-Requires(post,preun,postun):   systemd-units >= 38
 Requires(post,postun): /sbin/chkconfig
 Requires:      device-mapper >= %{version}-%{release}
 %{?with_selinux:Requires:      libselinux >= 1.10}
 Requires(post,postun): /sbin/chkconfig
 Requires:      device-mapper >= %{version}-%{release}
 %{?with_selinux:Requires:      libselinux >= 1.10}
-Requires:      systemd-units >= 38
 # doesn't work with 2.4 kernels
 Requires:      uname(release) >= 2.6
 # doesn't work with 2.4 kernels
 Requires:      uname(release) >= 2.6
+Suggests:      thin-provisioning-tools >= 0.5.4
 Obsoletes:     lvm
 Obsoletes:     lvm2-systemd
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 Obsoletes:     lvm
 Obsoletes:     lvm2-systemd
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
@@ -148,6 +175,7 @@ węzeł w klastrze nie ma tego demona uruchomionego.
 
 %package cmirrord
 Summary:       Cluster mirror log daemon
 
 %package cmirrord
 Summary:       Cluster mirror log daemon
+Summary(pl.UTF-8):     Demon śledzący log lustrzany w klastrze
 Group:         Applications/System
 Requires:      %{name} = %{version}-%{release}
 
 Group:         Applications/System
 Requires:      %{name} = %{version}-%{release}
 
@@ -161,6 +189,47 @@ This daemon relies on the cluster infrastructure provided by the
 Cluster MANager (CMAN), which must be set up and running in order for
 cmirrord to function.
 
 Cluster MANager (CMAN), which must be set up and running in order for
 cmirrord to function.
 
+%description cmirrord
+cmirrord to demon śledzący informacje logu lustrzanego w klastrze.
+Jest specyficzny dla klastrów lustrzanych opartych na device-mapperze
+(oraz, poprzez rozszerzenie, klastrów lustrzanych LVM). W klastrach
+lustrzanych ten demon jest niezbędny.
+
+Ten demon polega na infrastrukturze klastra dostarczanej przez CMAN
+(Cluster MANager), który musi być skonfigurowany i działający, aby
+działał cmirrord.
+
+%package dbusd
+Summary:       LVM2 D-Bus daemon
+Summary(pl.UTF-8):     Demon LVM2 D-Bus
+Group:         Daemons
+Requires:      %{name} = %{version}-%{release}
+Requires:      python3-dbus
+Requires:      python3-pygobject3 >= 3
+Requires:      python3-pyudev
+
+%description dbusd
+Daemon for access to LVM2 functionality through a D-Bus interface.
+
+%description dbusd -l pl.UTF-8
+Demon umożliwiający dostęp do funkcjonalności LVM2 poprzez interfejs
+D-Bus.
+
+%package lockd
+Summary:       LVM2 locking daemon
+Summary(pl.UTF-8):     Demon blokad LVM2
+Group:         Daemons
+Requires:      %{name} = %{version}-%{release}
+%{?with_cluster:Requires:      dlm-libs >= 3.99.5}
+%{?with_sanlock:Requires:      sanlock-libs >= 3.3.0}
+
+%description lockd
+LVM commands use lvmlockd to coordinate access to shared storage.
+
+%description lockd -l pl.UTF-8
+Polecenia LVM wykorzystują lvmlockd do koordynowania dostępu do
+współdzielonej pamięci masowej.
+
 %package resource-agents
 Summary:       OCF Resource Agents for LVM2 processes
 Summary(pl.UTF-8):     Agenci OCF do monitorowania procesów LVM2
 %package resource-agents
 Summary:       OCF Resource Agents for LVM2 processes
 Summary(pl.UTF-8):     Agenci OCF do monitorowania procesów LVM2
@@ -174,13 +243,36 @@ OCF Resource Agents for LVM2 processes.
 %description resource-agents -l pl.UTF-8
 Agenci OCF do monitorowania procesów LVM2.
 
 %description resource-agents -l pl.UTF-8
 Agenci OCF do monitorowania procesów LVM2.
 
+%package -n python-lvm
+Summary:       Python 2 interface to LVM2
+Summary(pl.UTF-8):     Interfejs Pythona 2 do LVM2
+Group:         Libraries/Python
+Requires:      device-mapper-libs = %{version}-%{release}
+
+%description -n python-lvm
+Python 2 interface to LVM2.
+
+%description -n python-lvm -l pl.UTF-8
+Interfejs Pythona 2 do LVM2.
+
+%package -n python3-lvm
+Summary:       Python 3 interface to LVM2
+Summary(pl.UTF-8):     Interfejs Pythona 3 do LVM2
+Group:         Libraries/Python
+Requires:      device-mapper-libs = %{version}-%{release}
+
+%description -n python3-lvm
+Python 3 interface to LVM2.
+
+%description -n python3-lvm -l pl.UTF-8
+Interfejs Pythona 3 do LVM2.
+
 %package -n device-mapper
 Summary:       Userspace support for the device-mapper
 Summary(pl.UTF-8):     Wsparcie dla mapowania urządzeń w przestrzeni użytkownika
 Group:         Base
 Requires(post,postun): /sbin/ldconfig
 %package -n device-mapper
 Summary:       Userspace support for the device-mapper
 Summary(pl.UTF-8):     Wsparcie dla mapowania urządzeń w przestrzeni użytkownika
 Group:         Base
 Requires(post,postun): /sbin/ldconfig
-Requires(post,preun,postun):   systemd-units >= 38
-Requires:      systemd-units >= 38
+Requires:      device-mapper-libs = %{version}-%{release}
 
 %description -n device-mapper
 The goal of this driver is to support volume management. The driver
 
 %description -n device-mapper
 The goal of this driver is to support volume management. The driver
@@ -197,21 +289,37 @@ definiowania partycji na dysku lub logicznych wolumenów. Ten lekki
 składnik jądra może wspierać działające w przestrzeni użytkownika
 narzędzia do zarządzania logicznymi wolumenami.
 
 składnik jądra może wspierać działające w przestrzeni użytkownika
 narzędzia do zarządzania logicznymi wolumenami.
 
+%package -n device-mapper-libs
+Summary:       Device-mapper shared libraries
+Summary(pl.UTF-8):     Biblioteki współdzielone device-mappera
+Group:         Libraries
+Requires:      libblkid >= 2.24
+Requires:      udev-libs >= 1:176
+Conflicts:     device-mapper < 2.02.119-1
+
+%description -n device-mapper-libs
+Device-mapper shared libraries.
+
+%description -n device-mapper-libs -l pl.UTF-8
+Biblioteki współdzielone device-mappera.
+
 %package -n device-mapper-devel
 %package -n device-mapper-devel
-Summary:       Header files and development documentation for %{name}
-Summary(pl.UTF-8):     Pliki nagłówkowe i dokumentacja do %{name}
+Summary:       Header files for device-mapper libraries
+Summary(pl.UTF-8):     Pliki nagłówkowe bibliotek device-mappera
 Group:         Development/Libraries
 Group:         Development/Libraries
-Requires:      device-mapper = %{version}-%{release}
+Requires:      device-mapper-libs = %{version}-%{release}
+Requires:      libblkid-devel >= 2.24
 %if %{with selinux}
 Requires:      libselinux-devel
 Requires:      libsepol-devel
 %endif
 %if %{with selinux}
 Requires:      libselinux-devel
 Requires:      libsepol-devel
 %endif
+Requires:      udev-devel >= 1:176
 
 %description -n device-mapper-devel
 
 %description -n device-mapper-devel
-Header files and development documentation for %{name}.
+Header files for device-mapper libraries.
 
 %description -n device-mapper-devel -l pl.UTF-8
 
 %description -n device-mapper-devel -l pl.UTF-8
-Pliki nagłówkowe i dokumentacja do %{name}.
+Pliki nagłówkowe bibliotek device-mappera.
 
 %package -n device-mapper-static
 Summary:       Static devmapper library
 
 %package -n device-mapper-static
 Summary:       Static devmapper library
@@ -273,15 +381,14 @@ potrzeby initrd.
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
-%patch4 -p1
+%patch5 -p1
 %patch6 -p1
 %patch7 -p1
 %patch8 -p1
 %patch6 -p1
 %patch7 -p1
 %patch8 -p1
-%patch9 -p1
 
 # do not force --export-symbol linker option for e.g. statically linked executables
 # -rdynamic compiler option drives linker in the right way.
 
 # do not force --export-symbol linker option for e.g. statically linked executables
 # -rdynamic compiler option drives linker in the right way.
-%{__sed} -i -e 's#-Wl,--export-dynamic#-rdynamic#g' configure.in
+%{__sed} -i -e 's#-Wl,--export-dynamic#-rdynamic#g' configure.ac
 
 %build
 %if %{with initrd}
 
 %build
 %if %{with initrd}
@@ -317,8 +424,8 @@ cp -f /usr/share/automake/config.sub autoconf
 %{__make} -j1 -C libdm LIB_SHARED= VERSIONED_SHLIB=
 %{__make} -j1 -C libdaemon/client LIB_SHARED= VERSIONED_SHLIB=
 %{__make} -j1 -C tools dmsetup.static lvm.static %{?with_dietlibc:DIETLIBC_LIBS="-lcompat"}
 %{__make} -j1 -C libdm LIB_SHARED= VERSIONED_SHLIB=
 %{__make} -j1 -C libdaemon/client LIB_SHARED= VERSIONED_SHLIB=
 %{__make} -j1 -C tools dmsetup.static lvm.static %{?with_dietlibc:DIETLIBC_LIBS="-lcompat"}
-mv -f tools/lvm.static initrd-lvm
-mv -f tools/dmsetup.static initrd-dmsetup
+%{__mv} tools/lvm.static initrd-lvm
+%{__mv} tools/dmsetup.static initrd-dmsetup
 
 # check if tools works
 for tool in initrd-lvm initrd-dmsetup; do
 
 # check if tools works
 for tool in initrd-lvm initrd-dmsetup; do
@@ -329,8 +436,7 @@ for tool in initrd-lvm initrd-dmsetup; do
        fi
 done
 
        fi
 done
 
-
-%{?with_dietlibc:mv -f libdm/ioctl/libdevmapper.a diet-libdevmapper.a}
+%{?with_dietlibc:%{__mv} libdm/ioctl/libdevmapper.a diet-libdevmapper.a}
 %{__make} clean
 
 unset CC
 %{__make} clean
 
 unset CC
@@ -338,17 +444,33 @@ unset CC
 
 %configure \
        --enable-applib \
 
 %configure \
        --enable-applib \
+       --enable-cache_check_needs_check \
        --enable-cmdlib \
        --enable-cmdlib \
+       %{?with_lvmdbusd:--enable-dbus-service} \
        %{?debug:--enable-debug} \
        --enable-dmeventd \
        --enable-fsadm \
        %{?debug:--enable-debug} \
        --enable-dmeventd \
        --enable-fsadm \
+       --with-default-locking-dir=/var/lock/lvm \
+%if %{with lvmlockd}
+       %{?with_cluster:--enable-lvmlockd-dlm} \
+       %{?with_sanlock:--enable-lvmlockd-sanlock} \
+%endif
        %{?with_lvmetad:--enable-lvmetad} \
        %{?with_lvmetad:--enable-lvmetad} \
+       --enable-lvmpolld \
        --enable-ocf \
        --enable-ocf \
+       %{?with_python2:--enable-python2_bindings} \
+       %{?with_python3:--enable-python3_bindings} \
        --enable-readline \
        %{!?with_selinux:--disable-selinux} \
        --enable-pkgconfig \
        --enable-readline \
        %{!?with_selinux:--disable-selinux} \
        --enable-pkgconfig \
+       --enable-thin_check_needs_check \
        --enable-udev_sync \
        --enable-udev_rules \
        --enable-udev_sync \
        --enable-udev_rules \
+       --with-cache=internal \
+       --with-cache-check=/usr/sbin/cache_check \
+       --with-cache-dump=/usr/sbin/cache_dump \
+       --with-cache-repair=/usr/sbin/cache_repair \
+       --with-cache-restore=/usr/sbin/cache_restore \
        --with-cluster=internal \
 %if %{with cluster}
        --with-clvmd=corosync \
        --with-cluster=internal \
 %if %{with cluster}
        --with-clvmd=corosync \
@@ -360,37 +482,38 @@ unset CC
        --with-mirrors=internal \
        --with-optimisation="%{rpmcflags}" \
        --with-pool=internal \
        --with-mirrors=internal \
        --with-optimisation="%{rpmcflags}" \
        --with-pool=internal \
+       %{?with_replicator:--with-replicators=internal} \
        --with-snapshots=internal \
        --with-snapshots=internal \
-       --with-systemdsystemunitdir=%{systemdunitdir} \
        --with-thin=internal \
        --with-thin=internal \
-       --with-thin-check=%{_sbindir}/thin_check \
-       --with-thin-dump=%{_sbindir}/thin_dump \
-       --with-thin-repair=%{_sbindir}/thin_repair \
+       --with-thin-check=/usr/sbin/thin_check \
+       --with-thin-dump=/usr/sbin/thin_dump \
+       --with-thin-repair=/usr/sbin/thin_repair \
+       --with-thin-restore=/usr/sbin/thin_restore \
        --with-udev-prefix=/ \
        --with-usrlibdir=%{_libdir}
 
        --with-udev-prefix=/ \
        --with-usrlibdir=%{_libdir}
 
-%{__make} -j1
-%{__make} -j1 -C libdm LIB_STATIC=libdevmapper.a
+# use bash because of "set -o pipefail"
+%{__make} -j1 \
+       SHELL=/bin/bash
+%{__make} -j1 -C libdm \
+       LIB_STATIC=libdevmapper.a
 
 %install
 rm -rf $RPM_BUILD_ROOT
 install -d $RPM_BUILD_ROOT{/%{_lib},%{_sysconfdir}/lvm,/etc/sysconfig}
 %{?with_dietlibc:install -d $RPM_BUILD_ROOT%{dietlibdir}}
 
 
 %install
 rm -rf $RPM_BUILD_ROOT
 install -d $RPM_BUILD_ROOT{/%{_lib},%{_sysconfdir}/lvm,/etc/sysconfig}
 %{?with_dietlibc:install -d $RPM_BUILD_ROOT%{dietlibdir}}
 
-%{__make} install install_system_dirs install_systemd_units install_initscripts \
+%{__make} install install_system_dirs install_initscripts \
        DESTDIR=$RPM_BUILD_ROOT \
        OWNER="" \
        DESTDIR=$RPM_BUILD_ROOT \
        OWNER="" \
-       GROUP=""
-
-install -d $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d
-cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d/%{name}.conf
+       GROUP="" \
+       python3dir=%{py3_sitescriptdir}
 
 %if %{with cluster}
 
 %if %{with cluster}
-cp -p %{SOURCE2} $RPM_BUILD_ROOT%{systemdunitdir}/clvmd.service
 cp -p %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/clvmd
 %endif
 
 cp -p %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/clvmd
 %endif
 
-mv $RPM_BUILD_ROOT%{_libdir}/lib*.so.* $RPM_BUILD_ROOT/%{_lib}
+%{__mv} $RPM_BUILD_ROOT%{_libdir}/lib*.so.* $RPM_BUILD_ROOT/%{_lib}
 for lib in $RPM_BUILD_ROOT/%{_lib}/lib*.so.*; do
        lib=$(echo $lib | sed -e "s#$RPM_BUILD_ROOT##g")
        slib=$(basename $lib | sed -e 's#\.so\..*#.so#g')
 for lib in $RPM_BUILD_ROOT/%{_lib}/lib*.so.*; do
        lib=$(echo $lib | sed -e "s#$RPM_BUILD_ROOT##g")
        slib=$(basename $lib | sed -e 's#\.so\..*#.so#g')
@@ -413,102 +536,186 @@ cp -a libdm/libdevmapper.a $RPM_BUILD_ROOT%{_libdir}
 rm -rf $RPM_BUILD_ROOT
 
 %post
 rm -rf $RPM_BUILD_ROOT
 
 %post
+/sbin/chkconfig --add lvm2-lvmetad
+%service lvm2-lvmetad restart
 /sbin/chkconfig --add lvm2-monitor
 %service lvm2-monitor restart
 /sbin/chkconfig --add lvm2-monitor
 %service lvm2-monitor restart
-%systemd_post lvm2-monitor.service
+/sbin/chkconfig --add lvm2-lvmpolld
+%service lvm2-lvmpolld restart
+# no service restart available
 /sbin/chkconfig --add blk-availability
 # no service blk-availability restart
 /sbin/chkconfig --add blk-availability
 # no service blk-availability restart
-%systemd_post blk-availability.service
 
 %preun
 
 %preun
-%systemd_preun lvm2-monitor.service
-%systemd_preun blk-availability.service
-
-%postun
 if [ "$1" = "0" ]; then
 if [ "$1" = "0" ]; then
+       %service lvm2-lvmetad stop
+       /sbin/chkconfig --del lvm2-lvmetad
+       %service lvm2-lvmpolld stop
+       /sbin/chkconfig --del lvm2-lvmpolld
        %service lvm2-monitor stop
        /sbin/chkconfig --del lvm2-monitor
        #no service blk-availability stop
        /sbin/chkconfig --del blk-availability
 fi
        %service lvm2-monitor stop
        /sbin/chkconfig --del lvm2-monitor
        #no service blk-availability stop
        /sbin/chkconfig --del blk-availability
 fi
-%systemd_reload
-
-%triggerpostun -- %{name} < 2.02.94-1
-%systemd_trigger lvm2-monitor.service
 
 
-%post -n device-mapper
-/sbin/ldconfig
-%systemd_post dm-event.socket
-
-%preun -n device-mapper
-%systemd_preun dm-event.socket dm-event.service
-
-%postun -n device-mapper
-/sbin/ldconfig
-%systemd_reload
-
-%triggerpostun -n device-mapper -- device-mapper < 2.02.94-1
-%systemd_trigger dm-event.socket
+%post  -n device-mapper-libs -p /sbin/ldconfig
+%postun        -n device-mapper-libs -p /sbin/ldconfig
 
 %post clvmd
 /sbin/chkconfig --add clvmd
 # no service restart - it breaks current locks!
 export NORESTART=1
 
 %post clvmd
 /sbin/chkconfig --add clvmd
 # no service restart - it breaks current locks!
 export NORESTART=1
-%systemd_post clvmd.service
 # re-exec instead
 /usr/sbin/clvmd -S 2>/dev/null || :
 
 %preun clvmd
 # re-exec instead
 /usr/sbin/clvmd -S 2>/dev/null || :
 
 %preun clvmd
-%systemd_preun clvmd.service
-
-%postun clvmd
 if [ "$1" = "0" ]; then
        %service clvmd stop
        /sbin/chkconfig --del clvmd
 fi
 if [ "$1" = "0" ]; then
        %service clvmd stop
        /sbin/chkconfig --del clvmd
 fi
-%systemd_reload
 
 %files
 %defattr(644,root,root,755)
 %doc README WHATS_NEW doc/*
 %attr(755,root,root) %{_sbindir}/blkdeactivate
 %attr(755,root,root) %{_sbindir}/fsadm
 
 %files
 %defattr(644,root,root,755)
 %doc README WHATS_NEW doc/*
 %attr(755,root,root) %{_sbindir}/blkdeactivate
 %attr(755,root,root) %{_sbindir}/fsadm
-%attr(755,root,root) %{_sbindir}/lv*
-%attr(755,root,root) %{_sbindir}/pv*
-%attr(755,root,root) %{_sbindir}/vg*
+%attr(755,root,root) %{_sbindir}/lvchange
+%attr(755,root,root) %{_sbindir}/lvconvert
+%attr(755,root,root) %{_sbindir}/lvcreate
+%attr(755,root,root) %{_sbindir}/lvdisplay
+%attr(755,root,root) %{_sbindir}/lvextend
+%attr(755,root,root) %{_sbindir}/lvm
+%attr(755,root,root) %{_sbindir}/lvmconf
+%attr(755,root,root) %{_sbindir}/lvmconfig
+%attr(755,root,root) %{_sbindir}/lvmdiskscan
+%attr(755,root,root) %{_sbindir}/lvmdump
+%attr(755,root,root) %{_sbindir}/lvmsadc
+%attr(755,root,root) %{_sbindir}/lvmsar
+%attr(755,root,root) %{_sbindir}/lvreduce
+%attr(755,root,root) %{_sbindir}/lvremove
+%attr(755,root,root) %{_sbindir}/lvrename
+%attr(755,root,root) %{_sbindir}/lvresize
+%attr(755,root,root) %{_sbindir}/lvs
+%attr(755,root,root) %{_sbindir}/lvscan
+%attr(755,root,root) %{_sbindir}/pvchange
+%attr(755,root,root) %{_sbindir}/pvck
+%attr(755,root,root) %{_sbindir}/pvcreate
+%attr(755,root,root) %{_sbindir}/pvdisplay
+%attr(755,root,root) %{_sbindir}/pvmove
+%attr(755,root,root) %{_sbindir}/pvremove
+%attr(755,root,root) %{_sbindir}/pvresize
+%attr(755,root,root) %{_sbindir}/pvs
+%attr(755,root,root) %{_sbindir}/pvscan
+%attr(755,root,root) %{_sbindir}/vgcfgbackup
+%attr(755,root,root) %{_sbindir}/vgcfgrestore
+%attr(755,root,root) %{_sbindir}/vgchange
+%attr(755,root,root) %{_sbindir}/vgck
+%attr(755,root,root) %{_sbindir}/vgconvert
+%attr(755,root,root) %{_sbindir}/vgcreate
+%attr(755,root,root) %{_sbindir}/vgdisplay
+%attr(755,root,root) %{_sbindir}/vgexport
+%attr(755,root,root) %{_sbindir}/vgextend
+%attr(755,root,root) %{_sbindir}/vgimport
+%attr(755,root,root) %{_sbindir}/vgimportclone
+%attr(755,root,root) %{_sbindir}/vgmerge
+%attr(755,root,root) %{_sbindir}/vgmknodes
+%attr(755,root,root) %{_sbindir}/vgreduce
+%attr(755,root,root) %{_sbindir}/vgremove
+%attr(755,root,root) %{_sbindir}/vgrename
+%attr(755,root,root) %{_sbindir}/vgs
+%attr(755,root,root) %{_sbindir}/vgscan
+%attr(755,root,root) %{_sbindir}/vgsplit
 %{_mandir}/man5/lvm.conf.5*
 %{_mandir}/man5/lvm.conf.5*
+%{_mandir}/man7/lvmcache.7*
+%{_mandir}/man7/lvmraid.7*
+%{_mandir}/man7/lvmreport.7*
+%{_mandir}/man7/lvmsystemid.7*
 %{_mandir}/man7/lvmthin.7*
 %{_mandir}/man8/blkdeactivate.8*
 %{_mandir}/man8/fsadm.8*
 %{_mandir}/man7/lvmthin.7*
 %{_mandir}/man8/blkdeactivate.8*
 %{_mandir}/man8/fsadm.8*
-%{_mandir}/man8/lv*.8*
-%{_mandir}/man8/pv*.8*
-%{_mandir}/man8/vg*.8*
+%{_mandir}/man8/lvchange.8*
+%{_mandir}/man8/lvconvert.8*
+%{_mandir}/man8/lvcreate.8*
+%{_mandir}/man8/lvdisplay.8*
+%{_mandir}/man8/lvextend.8*
+%{_mandir}/man8/lvm-config.8*
+%{_mandir}/man8/lvm-dumpconfig.8*
+%{_mandir}/man8/lvm-fullreport.8*
+%{_mandir}/man8/lvm-lvpoll.8*
+%{_mandir}/man8/lvm.8*
+%{_mandir}/man8/lvmconf.8*
+%{_mandir}/man8/lvmconfig.8*
+%{_mandir}/man8/lvmdiskscan.8*
+%{_mandir}/man8/lvmdump.8*
+%{_mandir}/man8/lvmsadc.8*
+%{_mandir}/man8/lvmsar.8*
+%{_mandir}/man8/lvreduce.8*
+%{_mandir}/man8/lvremove.8*
+%{_mandir}/man8/lvrename.8*
+%{_mandir}/man8/lvresize.8*
+%{_mandir}/man8/lvs.8*
+%{_mandir}/man8/lvscan.8*
+%{_mandir}/man8/pvchange.8*
+%{_mandir}/man8/pvck.8*
+%{_mandir}/man8/pvcreate.8*
+%{_mandir}/man8/pvdisplay.8*
+%{_mandir}/man8/pvmove.8*
+%{_mandir}/man8/pvremove.8*
+%{_mandir}/man8/pvresize.8*
+%{_mandir}/man8/pvs.8*
+%{_mandir}/man8/pvscan.8*
+%{_mandir}/man8/vgcfgbackup.8*
+%{_mandir}/man8/vgcfgrestore.8*
+%{_mandir}/man8/vgchange.8*
+%{_mandir}/man8/vgck.8*
+%{_mandir}/man8/vgconvert.8*
+%{_mandir}/man8/vgcreate.8*
+%{_mandir}/man8/vgdisplay.8*
+%{_mandir}/man8/vgexport.8*
+%{_mandir}/man8/vgextend.8*
+%{_mandir}/man8/vgimport.8*
+%{_mandir}/man8/vgimportclone.8*
+%{_mandir}/man8/vgmerge.8*
+%{_mandir}/man8/vgmknodes.8*
+%{_mandir}/man8/vgreduce.8*
+%{_mandir}/man8/vgremove.8*
+%{_mandir}/man8/vgrename.8*
+%{_mandir}/man8/vgs.8*
+%{_mandir}/man8/vgscan.8*
+%{_mandir}/man8/vgsplit.8*
 %attr(750,root,root) %dir %{_sysconfdir}/lvm
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lvm/lvm.conf
 %attr(750,root,root) %dir %{_sysconfdir}/lvm
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lvm/lvm.conf
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lvm/lvmlocal.conf
 %attr(750,root,root) %dir %{_sysconfdir}/lvm/profile
 %attr(750,root,root) %dir %{_sysconfdir}/lvm/profile
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lvm/profile/cache-mq.profile
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lvm/profile/cache-smq.profile
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lvm/profile/command_profile_template.profile
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lvm/profile/metadata_profile_template.profile
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lvm/profile/thin-generic.profile
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lvm/profile/thin-performance.profile
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lvm/profile/command_profile_template.profile
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lvm/profile/metadata_profile_template.profile
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lvm/profile/thin-generic.profile
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lvm/profile/thin-performance.profile
-%if %{with lvmetad}
-/lib/udev/rules.d/69-dm-lvm-metad.rules
-%endif
-%{_sysconfdir}/tmpfiles.d/lvm2.conf
-%{systemdunitdir}/blk-availability.service
-%if %{with lvmetad}
-%{systemdunitdir}/lvm2-lvmetad.service
-%{systemdunitdir}/lvm2-lvmetad.socket
-%endif
-%{systemdunitdir}/lvm2-monitor.service
-%{systemdunitdir}/lvm2-pvscan@.service
 %dir %{_sysconfdir}/lvm/cache
 %ghost %{_sysconfdir}/lvm/cache/.cache
 %attr(754,root,root) /etc/rc.d/init.d/blk-availability
 %dir %{_sysconfdir}/lvm/cache
 %ghost %{_sysconfdir}/lvm/cache/.cache
 %attr(754,root,root) /etc/rc.d/init.d/blk-availability
+%attr(754,root,root) /etc/rc.d/init.d/lvm2-monitor
+%attr(700,root,root) %dir /var/run/lvm
+%attr(700,root,root) %dir /var/lock/lvm
 %if %{with lvmetad}
 %if %{with lvmetad}
+%attr(755,root,root) %{_sbindir}/lvmetad
+/lib/udev/rules.d/69-dm-lvm-metad.rules
 %attr(754,root,root) /etc/rc.d/init.d/lvm2-lvmetad
 %attr(754,root,root) /etc/rc.d/init.d/lvm2-lvmetad
+%{_mandir}/man8/lvmetad.8*
+%endif
+%if %{with lvmlockd}
+%attr(755,root,root) %{_sbindir}/lvmlockctl
+%attr(755,root,root) %{_sbindir}/lvmlockd
+%{_mandir}/man8/lvmlockctl.8*
+%{_mandir}/man8/lvmlockd.8*
+%endif
+%if %{with lvmpolld}
+%attr(755,root,root) %{_sbindir}/lvmpolld
+%attr(754,root,root) /etc/rc.d/init.d/lvm2-lvmpolld
+%{_mandir}/man8/lvmpolld.8*
 %endif
 %endif
-%attr(754,root,root) /etc/rc.d/init.d/lvm2-monitor
-%dir %attr(700,root,root) /var/run/lvm
 
 %if %{with cluster}
 %files clvmd
 
 %if %{with cluster}
 %files clvmd
@@ -516,60 +723,96 @@ fi
 %attr(755,root,root) %{_usrsbindir}/clvmd
 %attr(754,root,root) /etc/rc.d/init.d/clvmd
 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/clvmd
 %attr(755,root,root) %{_usrsbindir}/clvmd
 %attr(754,root,root) /etc/rc.d/init.d/clvmd
 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/clvmd
-%attr(755,root,root) /lib/systemd/lvm2-cluster-activation
-%{systemdunitdir}/clvmd.service
-%{systemdunitdir}/lvm2-cluster-activation.service
-%{systemdunitdir}/lvm2-clvmd.service
 %{_mandir}/man8/clvmd.8*
 
 %files cmirrord
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_usrsbindir}/cmirrord
 %attr(754,root,root) /etc/rc.d/init.d/cmirrord
 %{_mandir}/man8/clvmd.8*
 
 %files cmirrord
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_usrsbindir}/cmirrord
 %attr(754,root,root) /etc/rc.d/init.d/cmirrord
-%{systemdunitdir}/lvm2-cmirrord.service
 %{_mandir}/man8/cmirrord.8*
 %endif
 
 %{_mandir}/man8/cmirrord.8*
 %endif
 
+%if %{with lvmdbusd}
+%files dbusd
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_sbindir}/lvmdbusd
+%{py3_sitescriptdir}/lvmdbusd
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lvm/profile/lvmdbusd.profile
+#%config(noreplace) %verify(not md5 mtime size) /etc/dbus-1/system.d/com.redhat.lvmdbus1.conf
+#%{_datadir}/dbus-1/system-services/com.redhat.lvmdbus1.service
+%{_mandir}/man8/lvmdbusd.8*
+%endif
+
 %files resource-agents
 %defattr(644,root,root,755)
 %dir %{_prefix}/lib/ocf/resource.d/lvm2
 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/lvm2/VolumeGroup
 
 %files resource-agents
 %defattr(644,root,root,755)
 %dir %{_prefix}/lib/ocf/resource.d/lvm2
 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/lvm2/VolumeGroup
 
+%if %{with python2}
+%files -n python-lvm
+%defattr(644,root,root,755)
+%attr(755,root,root) %{py_sitedir}/lvm.so
+%{py_sitedir}/lvm-%{version}_*-py*.egg-info
+%endif
+
+%if %{with python3}
+%files -n python3-lvm
+%defattr(644,root,root,755)
+%attr(755,root,root) %{py3_sitedir}/lvm.cpython-*.so
+%{py3_sitedir}/lvm-%{version}_*-py*.egg-info
+%endif
+
 %files -n device-mapper
 %defattr(644,root,root,755)
 %doc *_DM
 %files -n device-mapper
 %defattr(644,root,root,755)
 %doc *_DM
-%{systemdunitdir}/dm-event.service
-%{systemdunitdir}/dm-event.socket
 /lib/udev/rules.d/10-dm.rules
 /lib/udev/rules.d/11-dm-lvm.rules
 /lib/udev/rules.d/13-dm-disk.rules
 /lib/udev/rules.d/95-dm-notify.rules
 %attr(755,root,root) %{_sbindir}/dmeventd
 %attr(755,root,root) %{_sbindir}/dmsetup
 /lib/udev/rules.d/10-dm.rules
 /lib/udev/rules.d/11-dm-lvm.rules
 /lib/udev/rules.d/13-dm-disk.rules
 /lib/udev/rules.d/95-dm-notify.rules
 %attr(755,root,root) %{_sbindir}/dmeventd
 %attr(755,root,root) %{_sbindir}/dmsetup
-%attr(755,root,root) /%{_lib}/libdevmapper*.so.*.*
-%attr(755,root,root) /%{_lib}/liblvm2app.so.*.*
-%attr(755,root,root) /%{_lib}/liblvm2cmd.so.*.*
+%attr(755,root,root) %{_sbindir}/dmstats
+%attr(755,root,root) %{_libdir}/libdevmapper-event-lvm2mirror.so
+%attr(755,root,root) %{_libdir}/libdevmapper-event-lvm2raid.so
+%attr(755,root,root) %{_libdir}/libdevmapper-event-lvm2snapshot.so
+%attr(755,root,root) %{_libdir}/libdevmapper-event-lvm2thin.so
+%attr(755,root,root) %{_libdir}/libdevmapper-event-lvm2vdo.so
 %dir %{_libdir}/device-mapper
 %dir %{_libdir}/device-mapper
-%attr(755,root,root) %{_libdir}/device-mapper/*.so
-%attr(755,root,root) %{_libdir}/libdevmapper-event-*.so
+%attr(755,root,root) %{_libdir}/device-mapper/libdevmapper-event-lvm2mirror.so
+%attr(755,root,root) %{_libdir}/device-mapper/libdevmapper-event-lvm2raid.so
+%attr(755,root,root) %{_libdir}/device-mapper/libdevmapper-event-lvm2snapshot.so
+%attr(755,root,root) %{_libdir}/device-mapper/libdevmapper-event-lvm2thin.so
+%attr(755,root,root) %{_libdir}/device-mapper/libdevmapper-event-lvm2vdo.so
 %{_mandir}/man8/dmsetup.8*
 %{_mandir}/man8/dmsetup.8*
+%{_mandir}/man8/dmstats.8*
 %{_mandir}/man8/dmeventd.8*
 
 %{_mandir}/man8/dmeventd.8*
 
+%files -n device-mapper-libs
+%defattr(644,root,root,755)
+%attr(755,root,root) /%{_lib}/libdevmapper.so.*.*
+%attr(755,root,root) /%{_lib}/libdevmapper-event.so.*.*
+%attr(755,root,root) /%{_lib}/libdevmapper-event-lvm2.so.*.*
+%attr(755,root,root) /%{_lib}/liblvm2app.so.*.*
+%attr(755,root,root) /%{_lib}/liblvm2cmd.so.*.*
+
 %files -n device-mapper-devel
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/libdevmapper.so
 %attr(755,root,root) %{_libdir}/libdevmapper-event.so
 %files -n device-mapper-devel
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/libdevmapper.so
 %attr(755,root,root) %{_libdir}/libdevmapper-event.so
+%attr(755,root,root) %{_libdir}/libdevmapper-event-lvm2.so
 %attr(755,root,root) %{_libdir}/liblvm2app.so
 %attr(755,root,root) %{_libdir}/liblvm2cmd.so
 %attr(755,root,root) %{_libdir}/liblvm2app.so
 %attr(755,root,root) %{_libdir}/liblvm2cmd.so
-%{_includedir}/libdevmapper*.h
+%{_includedir}/libdevmapper.h
+%{_includedir}/libdevmapper-event.h
 %{_includedir}/lvm2app.h
 %{_includedir}/lvm2cmd.h
 %{_includedir}/lvm2app.h
 %{_includedir}/lvm2cmd.h
-%{_pkgconfigdir}/devmapper*.pc
+%{_pkgconfigdir}/devmapper.pc
+%{_pkgconfigdir}/devmapper-event.pc
 %{_pkgconfigdir}/lvm2app.pc
 
 %files -n device-mapper-static
 %defattr(644,root,root,755)
 %{_pkgconfigdir}/lvm2app.pc
 
 %files -n device-mapper-static
 %defattr(644,root,root,755)
-%{_libdir}/libdevmapper*.a
+%{_libdir}/libdevmapper.a
 
 %if %{with initrd}
 %if %{with dietlibc}
 
 %if %{with initrd}
 %if %{with dietlibc}