Summary: Tools to manage multipath devices using device-mapper
Summary(ja): Device-mapper を使用してマルチパスデバイスを管理するためのツール集
Name: device-mapper-multipath
Version: 0.8.2
Release: 1%{?_dist_release}
Group: System Environment/Base
License: GPLv2+
URL: http://christophe.varoqui.free.fr/
# The source for this package was pulled from upstream's git repo.  Use the
# following command to generate the tarball
# curl "https://git.opensvc.com/?p=multipath-tools/.git;a=snapshot;h=refs/tags/0.8.2;sf=tgz" -o multipath-tools-0.8.2.tgz
Source0: multipath-tools-%{version}.tgz
Source1: multipath.conf
Source2: multipathd.init

Patch0001: 0001-libmultipath-make-vector_foreach_slot_backwards-work.patch
Patch0002: 0002-libmultipath-add-marginal-paths-and-groups-infrastru.patch
Patch0003: 0003-tests-add-path-grouping-policy-unit-tests.patch
Patch0004: 0004-libmultipath-add-wrapper-function-around-pgpolicyfn.patch
Patch0005: 0005-tests-update-pgpolicy-tests-to-work-with-group_paths.patch
Patch0006: 0006-libmultipath-fix-double-free-in-pgpolicyfn-error-pat.patch
Patch0007: 0007-libmultipath-consolidate-group_by_-functions.patch
Patch0008: 0008-libmultipath-make-pgpolicyfn-take-a-paths-vector.patch
Patch0009: 0009-libmultipath-make-group_paths-handle-marginal-paths.patch
Patch0010: 0010-tests-add-tests-for-grouping-marginal-paths.patch
Patch0011: 0011-libmultipath-add-marginal_pathgroups-config-option.patch
Patch0012: 0012-libmutipath-deprecate-delay_-_checks.patch
Patch0013: 0013-multipathd-use-marginal_pathgroups.patch
Patch0014: 0014-multipath-update-man-pages.patch
Patch0015: 0015-multipath.conf-add-enable_foreign-parameter.patch
Patch0016: 0016-multipath.conf.5-document-foreign-library-support.patch
Patch0017: 0017-mpathpersist-remove-broken-unused-code.patch
Patch0018: 0018-libmultipath-EMC-PowerMax-NVMe-device-config.patch
Patch0019: 0019-mpathpersist-fix-leaks.patch
Patch0020: 0020-libmultipath-fix-mpcontext-initialization.patch
Patch0021: 0021-RH-fixup-udev-rules-for-redhat.patch
Patch0022: 0022-RH-Remove-the-property-blacklist-exception-builtin.patch
Patch0023: 0023-RH-don-t-start-without-a-config-file.patch
Patch0024: 0024-RH-use-rpm-optflags-if-present.patch
Patch0025: 0025-RH-add-mpathconf.patch
Patch0026: 0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch
Patch0027: 0027-RH-warn-on-invalid-regex-instead-of-failing.patch
Patch0028: 0028-RH-reset-default-find_mutipaths-value-to-off.patch
Patch0029: 0029-RH-Fix-nvme-compilation-warning.patch
Patch0030: 0030-RH-attempt-to-get-ANA-info-via-sysfs-first.patch
Patch0031: 0031-multipath-fix-issues-found-by-compiling-with-gcc-10.patch

BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Requires(post): chkconfig
Requires(preun): chkconfig
Requires: kpartx = %{version}-%{release}
Requires: device-mapper >= 1.02.39
BuildRequires: libsysfs-devel
BuildRequires: device-mapper-devel
#BuildRequires: libselinux-devel, libsepol-devel
BuildRequires: readline-devel, ncurses-devel
BuildRequires: libaio-devel
BuildRequires: userspace-rcu-devel
BuildRequires: libudev-devel
BuildRequires: json-c-devel

Vendor: Project Vine
Distribution: Vine Linux
Packager: daisuke

%description
%{name} provides tools to manage multipath devices by instructing the 
device-mapper multipath kernel module what to do. 
The tools are :
* multipath :   Scan the system for multipath devices and assemble them.
* multipathd :  Detects when paths fail and execs multipath to update things.


%package libs
Summary: The %{name} modules and shared library
# only libmpathcmd is LGPLv2+
License: GPLv2 and LGPLv2+

%description libs
The %{name}-libs provides the path checker
and prioritizer modules. It also contains the libmpathpersist and
libmpathcmd shared libraries, as well as multipath's internal library,
libmultipath.


%package devel
Summary: Development libraries and headers for %{name}
Requires: %{name} = %{version}-%{release}
Requires: %{name}-libs = %{version}-%{release}

%description devel
This package contains the files need to develop applications that use
device-mapper-multipath's lbmpathpersist and libmpathcmd libraries.


%package -n kpartx
Summary: Partition device manager for device-mapper devices
Summary(ja): Device-mapper デバイス用のパーティションデバイスマネージャー
Group: System Environment/Base
Provides: kpartx = %{version}-%{release}

%description -n kpartx
kpartx manages partition creation and removal for device-mapper devices.


%package -n libdmmp
Summary: device-mapper-multipath C API library
License: GPLv3+
Requires: json-c
Requires: %{name} = %{version}-%{release}
Requires: %{name}-libs = %{version}-%{release}

%description -n libdmmp
This package contains the shared library for the device-mapper-multipath
C API library.

%package -n libdmmp-devel
Summary: device-mapper-multipath C API library headers
Requires: pkgconfig
Requires: libdmmp = %{version}-%{release}

%description -n libdmmp-devel
This package contains the files needed to develop applications that use
device-mapper-multipath's libdmmp C API library


%prep
%setup -q -n multipath-tools-0.8.2
%autopatch -p1


%build
make %{?_smp_mflags} LIB=%{_lib} SYSTEMDPATH=/lib


%install
rm -rf %{buildroot}
make install \
  DESTDIR=%{buildroot} \
  bindir=%{_syssbindir} \
  syslibdir=/%{_lib} \
  usrlibdir=%{_libdir} \
  libdir=/%{_lib}/multipath \
  rcdir=%{_initdir} \
  unitdir=%{_unitdir} \
  pkgconfdir=%{_libdir}/pkgconfig \
  SYSTEMDPATH=/lib

install -d %{buildroot}/etc/multipath
install -m644 %{SOURCE1} %{buildroot}/etc/multipath.conf

install -d %{buildroot}%{_initdir}
install -m755 %{SOURCE2} %{buildroot}%{_initdir}/multipathd


%clean
rm -rf %{buildroot}


%post
/sbin/chkconfig --add multipathd
if [ "$1" -gt "1" -a ! -e /etc/multipath/bindings -a \
    -f /var/lib/multipath/bindings ]; then
       mv /var/lib/multipath/bindings /etc/multipath/bindings
       ln -s /etc/multipath/bindings /var/lib/multipath/bindings
fi

%preun
if [ "$1" = 0 ]; then
        /sbin/service multipathd stop /dev/null 2>&1
        /sbin/chkconfig --del multipathd
fi


%postun
if [ "$1" -ge "1" ]; then
        /sbin/service multipathd condrestart >/dev/null 2>&1 || :
fi

%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig

%post -n libdmmp -p /sbin/ldconfig
%postun -n libdmmp -p /sbin/ldconfig


%files
%defattr(-,root,root,-)
%license LICENSES/GPL-2.0 LICENSES/LGPL-2.0
%doc README*
%config /lib/udev/rules.d/62-multipath.rules
%config /lib/udev/rules.d/11-dm-mpath.rules
%{_syssbindir}/multipath
%{_syssbindir}/multipathd
%{_syssbindir}/mpathconf
%{_syssbindir}/mpathpersist
%{_mandir}/man5/multipath.conf.5.gz
%{_mandir}/man8/multipath.8.gz
%{_mandir}/man8/multipathd.8.gz
%{_mandir}/man8/mpathconf.8.gz
%{_mandir}/man8/mpathpersist.8.gz
%config /etc/rc.d/init.d/multipathd
%config(noreplace) /etc/multipath.conf
%dir /etc/multipath

%files libs
%license LICENSES/GPL-2.0 LICENSES/LGPL-2.0
%doc README
/%{_lib}/libmultipath.so
/%{_lib}/libmultipath.so.*
/%{_lib}/libmpathpersist.so.*
/%{_lib}/libmpathcmd.so.*
%dir /%{_lib}/multipath
/%{_lib}/multipath/*

%files devel
%doc README
/%{_lib}/libmpathpersist.so
/%{_lib}/libmpathcmd.so
%{_includedir}/mpath_cmd.h
%{_includedir}/mpath_persist.h
%{_mandir}/man3/mpath_persistent_reserve_in.3.gz
%{_mandir}/man3/mpath_persistent_reserve_out.3.gz

%files -n kpartx
%defattr(-,root,root,-)
%license LICENSES/GPL-2.0 LICENSES/LGPL-2.0
%doc README
%{_syssbindir}/kpartx
/lib/udev/kpartx_id
%config /lib/udev/rules.d/11-dm-parts.rules
%config /lib/udev/rules.d/66-kpartx.rules
%config /lib/udev/rules.d/68-del-part-nodes.rules
%{_mandir}/man8/kpartx.8.gz

%files -n libdmmp
%license LICENSES/GPL-3.0
%doc README
%{_libdir}/libdmmp.so.*

%files -n libdmmp-devel
%doc README
%{_libdir}/libdmmp.so
%dir %{_includedir}/libdmmp
%{_includedir}/libdmmp/*
%{_mandir}/man3/dmmp_*
%{_mandir}/man3/libdmmp.h.3.gz
%{_libdir}/pkgconfig/libdmmp.pc


%changelog
* Sat Mar 28 2020 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 0.8.2-1
- new upstream release.
- replaced all patches with rawhide's.
- added sub-packages.
  - device-mapper-multipath-libs
  - device-mapper-multipath-devel
  - libdmmp
  - libdmmp-devel

* Sat Mar 21 2015 Ryoichi INAGAKI <ryo1@toki.waseda.jp> 0.4.9-5
- rebuilt with readline 6.3
- changed BuildRequires: libsysfs-devel instead of sysfsutils-devel
- added Japanese summary

* Mon Jan 12 2015 Yoji TOYODA <bsyamato@sea.plala.or.jp> 0.4.9-4
- rebuild with VineSeed environment

* Wed May 11 2011 Daisuke SUZUKI <daisuke@linux.or.jp> 0.4.9-3
- import patches from RH package

* Wed Apr 20 2011 Daisuke SUZUKI <daisuke@linux.or.jp> 0.4.9-2
- install multipath libraries to %%{_lib}/multipath

* Wed Apr 20 2011 Daisuke SUZUKI <daisuke@linux.or.jp> 0.4.9-1
- update to 0.4.9
- drop static version
- add BR: libaio-devel

* Sun Sep 07 2008 Shu KONNO <owa@bg.wakwak.com> 0.4.7-12vl5
- applied new versioning policy

* Thu Feb 14 2008 MATSUBAYASHI Kohji <shaolin@vinelinux.org> - 0.4.7-11vl1
- initial build for VineSeed
- add Patch100 to disable linking to libselinux and libsepol

* Mon Feb 05 2007 Alasdair Kergon <agk@redhat.com> - 0.4.7-11.fc7
- Add build dependency on new device-mapper-devel package.
- Add dependency on device-mapper.

* Wed Jan 31 2007 Benjamin Marzinksi <bmarzins@redhat.com> - 0.4.7-10.fc7
- Update BuildRoot and PreReq lines.

* Mon Jan 15 2007 Benjamin Marzinksi <bmarzins@redhat.com> - 0.4.7-9.fc7
- Fixed spec file.

* Mon Jan 15 2007 Benjamin Marzinski <bmarzins@redhat.com> - 0.4.7-8.fc7
- Update to latest code (t0_4_7_head2)

* Wed Dec 13 2006 Benjamin Marzinski <bmarzins@redhat.com> - 0.4.7-7.fc7
- Update to latest code (t0_4_7_head1)

* Thu Sep  7 2006 Peter Jones <pjones@redhat.com> - 0.4.7-5
- Fix kpartx to handle with drives >2TB correctly.

* Thu Aug 31 2006 Peter Jones <pjones@redhat.com> - 0.4.7-4.1
- Split kpartx out into its own package so dmraid can use it without
  installing multipathd
- Fix a segfault in kpartx

* Mon Jul 17 2006 Benjamin Marzinski <bmarzins@redhat.com> 0.4.7-4.0
- Updated to latest source. Fixes bug in default multipath.conf

* Wed Jul 12 2006 Benjamin Marzinski <bmarzins@redhat.com> 0.4.7-3.1
- Added ncurses-devel to BuildRequires

* Wed Jul 12 2006 Benjamin Marzinski <bmarzins@redhat.com> 0.4.7-3.0
- Updated to latest source. deals with change in libsysfs API

* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 0.4.7-2.2.1
- rebuild

* Mon Jul 10 2006 Benjamin Marzinski <bmarzins@redhat.com> 0.4.7-2.2
- fix tagging issue.

* Mon Jul 10 2006 Benjamin Marzinski <bmarzins@redhat.com> 0.4.7-2.1
- changed BuildRequires from sysfsutils-devel to libsysfs-devel

* Wed Jun 28 2006 Benjamin Marzinski <bmarzins@redhat.com> 0.4.7-2.0
- Updated to latest upstream source, fixes kpartx udev rule issue

* Tue Jun 06 2006 Benjamin Marzinski <bmarzins@redhat.com> 0.4.7-1.0
- Updated to Christophe's latest source

* Mon May 22 2006 Alasdair Kergon <agk@redhat.com> - 0.4.5-16.0
- Newer upstream source (t0_4_5_post59).

* Mon May 22 2006 Alasdair Kergon <agk@redhat.com> - 0.4.5-12.3
- BuildRequires: libsepol-devel, readline-devel

* Mon Feb 27 2006 Benjamin Marzinski <bmarzins@redhat.com> 0.4.5-12.2
- Prereq: chkconfig

* Mon Feb 20 2006 Karsten Hopp <karsten@redhat.de> 0.4.5-12.1
- BuildRequires: libselinux-devel

* Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> - 0.4.5-12.0.1
- bump again for double-long bug on ppc(64)

* Tue Feb 07 2006 Benjamin Marzinski <bmarzins@redhat.com> -0.4.5-12.0
- Updated to latest upstream source (t0_4_5_post56)

* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 0.4.5-9.1.1
- rebuilt for new gcc4.1 snapshot and glibc changes

* Mon Dec 19 2005 Benjamin Marzinski <bmarzins@redhat.com> - 0.4.5-9.1
- added patch for fedora changes

* Fri Dec 16 2005 Benjamin Marzinski <bmarzins@redhat.com> - 0.4.5-9.0
- Updated to latest upstream source (t)_4_5_post52)

* Fri Dec 09 2005 Jesse Keating <jkeating@redhat.com>
- rebuilt

* Sun Dec  4 2005 Peter Jones <pjones@redhat.com> - 0.4.4-2.6
- rebuild for newer libs

* Tue Nov 15 2005 Peter Jones <pjones@redhat.com> - 0.4.4-2.5
- unsplit kpartx.  parted knows how to do this now, so we don't
  need this in a separate package.

* Tue Nov 15 2005 Peter Jones <pjones@redhat.com> - 0.4.4-2.4
- split kpartx out into its own package

* Fri May 06 2005 Bill Nottingham <notting@redhat.com> - 0.4.4-2.3
- Fix last fix.

* Thu May 05 2005 Alasdair Kergon <agk@redhat.com> - 0.4.4-2.2
- Fix last fix.

* Wed May 04 2005 Alasdair Kergon <agk@redhat.com> - 0.4.4-2.1
- By default, disable the multipathd service.

* Tue Apr 19 2005 Alasdair Kergon <agk@redhat.com> - 0.4.4-2.0
- Fix core dump from last build.

* Tue Apr 19 2005 Alasdair Kergon <agk@redhat.com> - 0.4.4-1.0
- Move cache file into /var/cache/multipath.

* Fri Apr 08 2005 Alasdair Kergon <agk@redhat.com> - 0.4.4-0.pre8.1
- Remove pp_balance_units.

* Mon Apr 04 2005 Alasdair Kergon <agk@redhat.com> - 0.4.4-0.pre8.0
- Incorporate numerous upstream fixes.
- Update init script to distribution standards.

* Tue Mar 01 2005 Alasdair Kergon <agk@redhat.com> - 0.4.2-1.0
- Initial import based on Christophe Varoqui's spec file.
