# # spec file for package lvm2 # # Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # Url: http://www.sourceware.org/lvm2/ Name: lvm2 BuildRequires: device-mapper-devel BuildRequires: libcorosync-devel BuildRequires: libdlm-devel BuildRequires: libselinux-devel BuildRequires: libudev-devel BuildRequires: readline-devel BuildRequires: suse-module-tools BuildRequires: systemd-rpm-macros BuildRequires: pkgconfig(udev) Requires: device-mapper >= 1.02.25 Provides: lvm Version: 2.02.98 Release: 0. Summary: Logical Volume Manager Tools License: GPL-2.0 and LGPL-2.1 Group: System/Base Source: ftp://sources.redhat.com/pub/%{name}/LVM2.%{version}.tgz Source42: ftp://sources.redhat.com/pub/%{name}/LVM2.%{version}.tgz.asc Source1: lvm.conf Source8: clvmd.ocf Source10: cmirrord.ocf Source14: baselibs.conf Source16: csm-converter.tar.gz Patch: improve_probing.diff Patch2: no-inc-audit.diff Patch3: no_buildroot_shared.diff Patch4: sys_mount_instead_linux_fs.diff Patch6: man_page_sectors.diff Patch13: pipe_buff-definition.diff Patch20: support-drbd-filter.diff Patch22: handle_extended_devt.diff #suse Patch23: display-dm-name-for-lv-name.diff Patch66: device-mapper-type_punning.diff Patch67: lvm-path.patch #fate312248,patch68,69 Patch68: make-mirror-legs-on-different-tag-pvs.patch Patch69: improve-mirror-legs-on-different-tag-pvs.patch #upstream Patch71: make_raid1_default.diff #suppress warning Patch72: suppress_locking_failer_message.patch #upstream Patch73: remove-fedora-systemd.patch #fate#315092 Patch75: cmirrord_improvment_performance.patch #bnc#862076 Patch76: 0001-lvmetad-Init-lazily-to-avoid-socket-access-on-config.patch #fate#314367 Patch77: cluster_support_mirrord_log.diff Patch78: lvconvert-cluster-mirrored-disk-failed.patch Patch79: add_scm_support.patch #upstream backport Patch80: do_not_read_from_mirrors_have_failed_devices.diff Patch81: avoid_reading_failed_dev_in_mirrored_log.diff Patch82: mirrored_log_fixed_when_double_fault_occurs.diff Patch83: device_is_usable_mem_leak.diff #forward-port from sle11 Patch84: suppress_format1_size_warning.diff Patch85: pvmove_support_clustered_vg.diff #upstream Patch86: clmvd-fix-decriptor-leak-on-restart.patch Patch87: clvmd-Fix-node-up-down-handing-in-corosync-module.patch Patch88: clvmd-Avoid-a-3-way-deadlock-in-dead-client-cleanup.patch Patch89: 0001-clvmd-avoid-logging-in-signal-handler.patch # Never upstream Patch90: cmirrord_remove_date_time_from_compilation.patch #upstream, bnc#871176 Patch91: 0001-RAID-Make-RAID-4-5-6-display-sync-status-under-headi.patch #fixed in upstream,bnc#785467 Patch92: clvmd-fix-debugging-level-set-in-clvmd_set_debug-function.patch #upstream Patch93: 0001-toolcontext-Only-reopen-stdin-if-readable.patch #suse, bnc873538 Patch94: fix-closedown-before-thread-finish.patch #upstream Patch95: systemd-lvm2-activation-generator-report-only-error.patch #suse, bnc#870824 Patch96: use-mirrortype-asdefault-whenclvmdrunning.patch # bnc#878481 Patch97: systemd-use-umask-022-for-generated-systemd-units-by.patch # bnc#878930 Patch98: remove-quote-in-lvm2-monitor.patch # bnc#875233 Patch99: udev-Check-for-DM_NR_VALID_PATHS.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build # Not a real replacement but we drop evms Provides: evms = 2.5.5 Provides: evms-devel = 2.5.5 Provides: evms-gui = 2.5.5 Provides: evms-ha = 2.5.5 Obsoletes: evms <= 2.5.5 Obsoletes: evms-devel <= 2.5.5 Obsoletes: evms-gui <= 2.5.5 Obsoletes: evms-ha <= 2.5.5 %define _udevdir %(pkg-config --variable=udevdir udev) %{systemd_requires} %description Programs and man pages for configuring and using the LVM2 Logical Volume Manager. %prep %setup -q -n LVM2.%{version} %patch -p1 %patch2 %patch3 %patch4 %patch6 -p1 %patch13 -p1 %patch20 -p1 %patch22 -p1 %patch23 -p1 %patch66 -p1 %patch67 -p1 %patch68 -p1 %patch69 -p1 %patch71 -p1 %patch72 -p1 %patch73 -p1 %patch75 -p1 %patch76 -p1 %patch77 -p1 %patch78 -p1 %patch79 -p1 %patch80 -p1 %patch81 -p1 %patch82 -p1 %patch83 -p1 %patch84 -p1 %patch85 -p1 %patch86 -p1 %patch87 -p1 %patch88 -p1 %patch89 -p1 %patch90 -p1 %patch91 -p1 %patch92 -p1 %patch93 -p1 %patch94 -p1 %patch95 -p1 %patch96 -p1 %patch97 -p1 %patch98 -p1 %patch99 -p1 %build #set path so that thin_check can be found #export before configure due to bnc#779965 export MODPROBE_CMD=/sbin/modprobe export CFLAGS="$RPM_OPT_FLAGS" export PATH=$PATH:/sbin:/usr/sbin %configure --prefix=/ \ --bindir=/bin --libdir=/%_lib --with-usrlibdir=%_libdir \ --sbindir=/sbin --enable-dmeventd \ --enable-udev_sync --enable-udev_rules \ --enable-cmdlib --enable-applib --enable-dmeventd \ --enable-realtime --enable-pkgconfig \ --enable-selinux \ --with-clvmd=corosync --with-cluster=internal --with-cluster=internal \ --datarootdir=/usr/share --with-default-locking-dir=/run/lock/lvm \ --enable-cmirrord --with-thin=internal --enable-lvmetad --with-default-pid-dir=/run \ --with-default-dm-run-dir=/run --with-default-run-dir=/run/lvm --with-tmpfilesdir=%{_tmpfilesdir} export SUSE_ASNEEDED=0 make -j1 # symlinks are generated in parallel! %{?_smp_mflags} #csm convert tar zxvf %{S:16} pushd bnz make popd %install make install_lvm2 DESTDIR=$RPM_BUILD_ROOT make install_system_dirs DESTDIR=$RPM_BUILD_ROOT make install_systemd_units DESTDIR=$RPM_BUILD_ROOT make install_systemd_generators DESTDIR=$RPM_BUILD_ROOT make install_tmpfiles_configuration DESTDIR=$RPM_BUILD_ROOT make -C liblvm install DESTDIR=$RPM_BUILD_ROOT install -d -m 755 $RPM_BUILD_ROOT/etc/lvm install -d -m 755 $RPM_BUILD_ROOT/etc/lvm/backup install -d -m 755 $RPM_BUILD_ROOT/etc/lvm/archive install -d -m 755 $RPM_BUILD_ROOT/etc/lvm/metadata install -m 644 %{SOURCE1} $RPM_BUILD_ROOT/etc/lvm mkdir -p $RPM_BUILD_ROOT/etc/init.d install -m755 -D %{S:8} $RPM_BUILD_ROOT/usr/lib/ocf/resource.d/lvm2/clvmd install -m755 -D %{S:10} $RPM_BUILD_ROOT/usr/lib/ocf/resource.d/lvm2/cmirrord rm -f $RPM_BUILD_ROOT/%_libdir/libdevmapper-event-lvm2.so ln -sf libdevmapper-event-lvm2.so.2.02 $RPM_BUILD_ROOT/%_lib/libdevmapper-event-lvm2.so pushd $RPM_BUILD_ROOT/%_lib rm -f $RPM_BUILD_ROOT/%_libdir/liblvm2app.so rm -f $RPM_BUILD_ROOT/%_libdir/liblvm2cmd.so ln -sf liblvm2cmd.so.2.02 liblvm2cmd.so ln -sf liblvm2app.so.2.2 liblvm2app.so ln -sf device-mapper/libdevmapper-event-lvm2mirror.so libdevmapper-event-lvm2mirror.so.2.02 ln -sf device-mapper/libdevmapper-event-lvm2snapshot.so libdevmapper-event-lvm2snapshot.so.2.02 ln -sf device-mapper/libdevmapper-event-lvm2raid.so libdevmapper-event-lvm2raid.so.2.02 ln -sf device-mapper/libdevmapper-event-lvm2thin.so libdevmapper-event-lvm2thin.so.2.02 popd install -d $RPM_BUILD_ROOT/usr/sbin pushd daemons/clvmd make install DESTDIR=$RPM_BUILD_ROOT popd pushd daemons/cmirrord make install DESTDIR=$RPM_BUILD_ROOT popd pushd man make install DESTDIR=$RPM_BUILD_ROOT popd mv $RPM_BUILD_ROOT/sbin/clvmd $RPM_BUILD_ROOT/usr/sbin/clvmd mv $RPM_BUILD_ROOT/sbin/cmirrord $RPM_BUILD_ROOT/usr/sbin/cmirrord mkdir -p $RPM_BUILD_ROOT/usr/share rm $RPM_BUILD_ROOT/etc/lvm/cache/.cache #remove device-mapper man page rm -f $RPM_BUILD_ROOT/%{_mandir}/man8/dm* #remove device-mapper systemd events rm -f $RPM_BUILD_ROOT/%{_unitdir}/dm-event.socket rm -f $RPM_BUILD_ROOT/%{_unitdir}/dm-event.service # install and collect_lvm #install -m755 -D %{S:7} $RPM_BUILD_ROOT%{_udevdir}/collect_lvm #csm-convert pushd bnz install -m755 -D csm-converter $RPM_BUILD_ROOT/usr/sbin/csm-converter install -m755 -D csm-converter-helper $RPM_BUILD_ROOT/usr/sbin/csm-converter-helper mv README.csm-converter .. popd %pre %service_add_pre blk-availability.service lvm2-monitor.service lvm2-lvmetad.socket lvm2-lvmetad.service %post /sbin/ldconfig %{?regenerate_initrd_post} %service_add_post blk-availability.service lvm2-monitor.service lvm2-lvmetad.socket lvm2-lvmetad.service %posttrans %{?regenerate_initrd_posttrans} %preun %service_del_preun blk-availability.service lvm2-monitor.service lvm2-lvmetad.service lvm2-lvmetad.socket %postun /sbin/ldconfig %service_del_postun lvm2-lvmetad.service blk-availability.service lvm2-monitor.service lvm2-lvmetad.socket %files %defattr(-,root,root) %doc README WHATS_NEW doc/* %dir /etc/lvm %dir /etc/lvm/backup %dir /etc/lvm/archive %dir /etc/lvm/metadata %{_udevdir}/rules.d/11-dm-lvm.rules %{_udevdir}/rules.d/69-dm-lvm-metad.rules %{_unitdir}/blk-availability.service %{_unitdir}/lvm2-monitor.service %{_unitdir}/lvm2-lvmetad.socket %{_unitdir}/lvm2-lvmetad.service %{_tmpfilesdir}/lvm2.conf %config /etc/lvm/lvm.conf /usr/lib/systemd/system-generators/lvm2-activation-generator /sbin/blkdeactivate /sbin/fsadm /sbin/lvchange /sbin/lvconvert /sbin/lvcreate /sbin/lvdisplay /sbin/lvextend /sbin/lvm /sbin/lvmchange /sbin/lvmdiskscan /sbin/lvmdump /sbin/lvmsadc /sbin/lvmsar /sbin/lvreduce /sbin/lvremove /sbin/lvrename /sbin/lvresize /sbin/lvs /sbin/lvscan /sbin/pvchange /sbin/pvck /sbin/pvcreate /sbin/pvdisplay /sbin/pvmove /sbin/pvremove /sbin/pvresize /sbin/pvs /sbin/pvscan /sbin/vgcfgbackup /sbin/vgcfgrestore /sbin/vgchange /sbin/vgck /sbin/vgconvert /sbin/vgcreate /sbin/vgdisplay /sbin/vgexport /sbin/vgextend /sbin/vgimport /sbin/vgimportclone /sbin/vgmerge /sbin/vgmknodes /sbin/vgreduce /sbin/vgremove /sbin/vgrename /sbin/vgs /sbin/vgscan /sbin/vgsplit /sbin/lvmconf /sbin/lvmetad %dir /%_lib/device-mapper /%_lib/device-mapper/libdevmapper-event-lvm2mirror.so /%_lib/device-mapper/libdevmapper-event-lvm2snapshot.so /%_lib/device-mapper/libdevmapper-event-lvm2raid.so /%_lib/device-mapper/libdevmapper-event-lvm2thin.so /%_lib/libdevmapper-event-lvm2mirror.so /%_lib/libdevmapper-event-lvm2snapshot.so /%_lib/libdevmapper-event-lvm2raid.so /%_lib/libdevmapper-event-lvm2thin.so /%_lib/liblvm2cmd.so /%_lib/liblvm2cmd.so.2.02 /%_lib/liblvm2app.so /%_lib/liblvm2app.so.2.2 /%_lib/libdevmapper-event-lvm2mirror.so.2.02 /%_lib/libdevmapper-event-lvm2snapshot.so.2.02 /%_lib/libdevmapper-event-lvm2raid.so.2.02 /%_lib/libdevmapper-event-lvm2thin.so.2.02 /%_lib/libdevmapper-event-lvm2.so /%_lib/libdevmapper-event-lvm2.so.2.02 %{_mandir}/man5/lvm.conf.5.gz %{_mandir}/man8/blkdeactivate.8.gz %{_mandir}/man8/fsadm.8.gz %{_mandir}/man8/lvchange.8.gz %{_mandir}/man8/lvcreate.8.gz %{_mandir}/man8/lvconvert.8.gz %{_mandir}/man8/lvdisplay.8.gz %{_mandir}/man8/lvmdump.8.gz %{_mandir}/man8/lvextend.8.gz %{_mandir}/man8/lvm.8.gz %{_mandir}/man8/lvmchange.8.gz %{_mandir}/man8/lvmdiskscan.8.gz %{_mandir}/man8/lvreduce.8.gz %{_mandir}/man8/lvremove.8.gz %{_mandir}/man8/lvrename.8.gz %{_mandir}/man8/lvresize.8.gz %{_mandir}/man8/lvs.8.gz %{_mandir}/man8/lvscan.8.gz %{_mandir}/man8/pvchange.8.gz %{_mandir}/man8/pvck.8.gz %{_mandir}/man8/pvcreate.8.gz %{_mandir}/man8/pvdisplay.8.gz %{_mandir}/man8/pvmove.8.gz %{_mandir}/man8/pvremove.8.gz %{_mandir}/man8/pvresize.8.gz %{_mandir}/man8/pvs.8.gz %{_mandir}/man8/pvscan.8.gz %{_mandir}/man8/vgcfgbackup.8.gz %{_mandir}/man8/vgcfgrestore.8.gz %{_mandir}/man8/vgchange.8.gz %{_mandir}/man8/vgck.8.gz %{_mandir}/man8/vgconvert.8.gz %{_mandir}/man8/vgcreate.8.gz %{_mandir}/man8/vgdisplay.8.gz %{_mandir}/man8/vgexport.8.gz %{_mandir}/man8/vgextend.8.gz %{_mandir}/man8/vgimport.8.gz %{_mandir}/man8/vgimportclone.8.gz %{_mandir}/man8/vgmerge.8.gz %{_mandir}/man8/vgmknodes.8.gz %{_mandir}/man8/vgreduce.8.gz %{_mandir}/man8/vgremove.8.gz %{_mandir}/man8/vgrename.8.gz %{_mandir}/man8/vgs.8.gz %{_mandir}/man8/vgscan.8.gz %{_mandir}/man8/vgsplit.8.gz %{_mandir}/man8/lvmconf.8.gz %{_mandir}/man8/lvmsadc.8.gz %{_mandir}/man8/lvmsar.8.gz %{_mandir}/man8/lvmetad.8.gz %package clvm Url: http://sources.redhat.com/cluster/clvm/ Version: 2.02.98 Release: 0 Requires: corosync Requires: device-mapper >= 1.02.25 Requires: lvm2 = %{version} Requires: lvm2-cmirrord Obsoletes: cmirrord < %{version} Provides: cmirrord = %{version} Summary: Clustered LVM2 Group: Productivity/Clustering/HA %description clvm A daemon for using LVM2 Logival Volumes in a clustered environment. %files clvm %defattr(-,root,root) /usr/sbin/clvmd %dir /usr/lib/ocf %dir /usr/lib/ocf/resource.d %dir /usr/lib/ocf/resource.d/lvm2 /usr/lib/ocf/resource.d/lvm2/clvmd %{_mandir}/man8/clvmd.8.gz %doc README.csm-converter /usr/sbin/csm-converter /usr/sbin/csm-converter-helper %package cmirrord Url: http://www.sourceware.org/lvm2/ Version: 2.02.98 Release: 0 Requires: corosync Requires: device-mapper >= 1.02.25 Requires: lvm2 = %{version} Requires: lvm2-clvm Summary: Clustered RAID 1 support using device-mapper and corosync Group: Productivity/Clustering/HA %description cmirrord A daemon for using LVM2 Logival Volumes in a clustered environment. %files cmirrord %defattr(-,root,root) /usr/sbin/cmirrord /usr/lib/ocf/resource.d/lvm2/cmirrord %{_mandir}/man8/cmirrord.8.gz %package devel Version: 2.02.98 Release: 0 Requires: lvm2 = %{version} Summary: Development files for LVM2 Group: Development/Libraries/C and C++ %description devel This package provides development files for the LVM2 Logical Volume Manager. %files devel %defattr(-,root,root) /usr/include/lvm2cmd.h /usr/include/lvm2app.h %_libdir/pkgconfig/lvm2app.pc %changelog