# TODO
# - vgscan --ignorelocking failure creates /var/lock/lvm (even if /var is not yet mounted)
# - --with-replicators (=internal/shared/none, default is none)?
-# - OCF agents?
#
# Conditional build:
-%bcond_without initrd # don't build initrd version
+%bcond_with initrd # don't 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 cluster # disable all cluster support (clvmd&cmirrord)
-%bcond_with lvmetad # enable lvmetad
+%bcond_without lvmetad # disable lvmetad
%bcond_without selinux # disable SELinux
%ifarch sparc64 sparc
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.98
-Release: 3
+Version: 2.02.105
+Release: 1
License: GPL v2 and LGPL v2.1
Group: Applications/System
Source0: ftp://sources.redhat.com/pub/lvm2/LVM2.%{version}.tgz
-# Source0-md5: 1ce5b7f9981e1d02dfd1d3857c8d9fbe
+# Source0-md5: b5b3540661fc70bf329b526c1cfbcf3a
Source1: %{name}-tmpfiles.conf
Source2: clvmd.service
Source3: clvmd.sysconfig
BuildRequires: pkgconfig
BuildRequires: readline-devel
BuildRequires: rpmbuild(macros) >= 1.647
-BuildRequires: udev-devel >= 143
+BuildRequires: udev-devel >= 1:143
%if %{with initrd}
%if %{with dietlibc}
BuildRequires: dietlibc-static >= 2:0.32-7
Cluster MANager (CMAN), which must be set up and running in order for
cmirrord to function.
+%package resource-agents
+Summary: OCF Resource Agents for LVM2 processes
+Summary(pl.UTF-8): Agenci OCF do monitorowania procesów LVM2
+Group: Applications/System
+Requires: %{name} = %{version}-%{release}
+Requires: resource-agents
+
+%description resource-agents
+OCF Resource Agents for LVM2 processes.
+
+%description resource-agents -l pl.UTF-8
+Agenci OCF do monitorowania procesów 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,preun,postun): systemd-units >= 38
+Requires(post,postun): /sbin/ldconfig
Requires: systemd-units >= 38
%description -n device-mapper
ac_cv_lib_dl_dlopen=no \
%{?with_uClibc:ac_cv_func_siginterrupt=no} \
%{?debug:--enable-debug} \
- --with-optimisation="%{rpmcflags} -Os" \
+ --disable-nls \
+ --disable-readline \
+ --enable-selinux%{!?with_glibc:=no} \
--enable-static_link \
--with-lvm1=internal \
- --disable-selinux \
- --%{?with_glibc:en}%{!?with_glibc:dis}able-selinux \
- --disable-readline \
- --disable-nls
+ --with-optimisation="%{rpmcflags} -Os"
# glibc version links with normal static libdevicemapper which has selinux enabled
# and we need to keep these in sync between device-mapper and lvm2
mv -f tools/lvm.static initrd-lvm
mv -f tools/dmsetup.static initrd-dmsetup
+# check if tools works
+for tool in initrd-lvm initrd-dmsetup; do
+ LVM_SYSTEM_DIR=$(pwd) ./$tool help && rc=$? || rc=$?
+ if [ $rc -gt 127 ]; then
+ echo >&2 "Unexpected failure (exit status: $rc) from $tool. Does this tool work?!"
+ exit 1
+ fi
+done
+
+
%{?with_dietlibc:mv -f libdm/ioctl/libdevmapper.a diet-libdevmapper.a}
%{__make} clean
%endif
%configure \
- --with-usrlibdir=%{_libdir} \
- %{?debug:--enable-debug} \
- --with-optimisation="%{rpmcflags}" \
- --enable-readline \
- --enable-fsadm \
--enable-applib \
--enable-cmdlib \
- %{?with_lvmetad:--enable-lvmetad} \
+ %{?debug:--enable-debug} \
--enable-dmeventd \
- --with-dmeventd-path=%{_sbindir}/dmeventd \
+ --enable-fsadm \
+ %{?with_lvmetad:--enable-lvmetad} \
+ --enable-ocf \
+ --enable-readline \
+ %{!?with_selinux:--disable-selinux} \
--enable-pkgconfig \
--enable-udev_sync \
--enable-udev_rules \
+ --with-cluster=internal \
%if %{with cluster}
--with-clvmd=corosync \
--enable-cmirrord \
%endif
+ --with-dmeventd-path=%{_sbindir}/dmeventd \
+ --with-interface=ioctl \
--with-lvm1=internal \
+ --with-mirrors=internal \
+ --with-optimisation="%{rpmcflags}" \
--with-pool=internal \
- --with-cluster=internal \
--with-snapshots=internal \
- --with-mirrors=internal \
+ --with-systemdsystemunitdir=%{systemdunitdir} \
--with-thin=internal \
- --with-thin-check="" \
- --with-interface=ioctl \
+ --with-thin-check=%{_sbindir}/thin_check \
+ --with-thin-dump=%{_sbindir}/thin_dump \
+ --with-thin-repair=%{_sbindir}/thin_repair \
--with-udev-prefix=/ \
- --with-systemd_dir=%{systemdunitdir} \
- %{!?with_selinux:--disable-selinux}
+ --with-usrlibdir=%{_libdir}
%{__make} -j1
%{__make} -j1 -C libdm LIB_STATIC=libdevmapper.a
%{_mandir}/man8/vg*.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/profile
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lvm/profile/default.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}/lvm2-monitor.service
%{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
+%if %{with lvmetad}
+%attr(754,root,root) /etc/rc.d/init.d/lvm2-lvmetad
+%endif
%attr(754,root,root) /etc/rc.d/init.d/lvm2-monitor
%dir %attr(700,root,root) /var/run/lvm
%attr(754,root,root) /etc/rc.d/init.d/cmirrord
%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 -n device-mapper
%defattr(644,root,root,755)
%doc *_DM