Hello community, here is the log from the commit of package lvm2 for openSUSE:Factory checked in at 2016-06-02 09:35:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/lvm2 (Old) and /work/SRC/openSUSE:Factory/.lvm2.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lvm2" Changes: -------- New Changes file: --- /dev/null 2016-04-07 01:36:33.300037506 +0200 +++ /work/SRC/openSUSE:Factory/.lvm2.new/device-mapper.changes 2016-06-02 09:35:19.000000000 +0200 @@ -0,0 +1,1686 @@ +------------------------------------------------------------------- +Thu May 19 12:07:09 UTC 2016 - [email protected] + +- Add compat symlinks for binaries to /sbin/ to avoid errors on + hardcoded systems, obsolete them with leap 43 + +------------------------------------------------------------------- +Thu May 12 08:12:54 UTC 2016 - [email protected] + +- Add conflicts on unsplit packages to allow smooth upgrade path + Also do the conflict properly in baselibs.conf + +------------------------------------------------------------------- +Wed May 11 07:54:19 UTC 2016 - [email protected] + +- Add dependencies to the devel pacakge in baselibs.conf + +------------------------------------------------------------------- +Wed May 4 10:36:40 UTC 2016 - [email protected] + +- Update patch use-mirrortype-asdefault-whenclvmdrunning.patch + to match up the patches/pvmove_support_clustered_vg.diff and not + use the define declared only when building clvm codebase; + it is still broken if someone changes the PID location, but at least + it now does not depend on clvm code +- Regenerate_initrd in post of the lvm2 main pkg +- Update baselibs to point to split-out devicemapper libraries + +------------------------------------------------------------------- +Wed May 4 09:27:30 UTC 2016 - [email protected] + +- Keep in sync the common configuration options that are shared among + all the variants dm/lvm2/clvm + +------------------------------------------------------------------- +Tue May 3 14:03:30 UTC 2016 - [email protected] + +- Provide symlinks to 1.02 versions of dm and dm-event libs + * this should sort out binary packages without the need of double + rebuilding + +------------------------------------------------------------------- +Tue May 3 13:23:52 UTC 2016 - [email protected] + +- Update to 2.02.152 release, read WHATS_NEW for detailed log. +- Refresh patches: + * 10-dm.rules-Reset-state-variable-for-spurious-events.patch + * device-mapper-gcc-warnings.patch + * device-mapper-link.patch + * udev-Check-for-DM_NR_VALID_PATHS.patch +- Slightly tweak btrfs patch as the code changed for the detection: + * fsadm-add-support-for-btrfs.patch + +------------------------------------------------------------------- +Tue May 3 12:55:34 UTC 2016 - [email protected] + +- Build and install properly cluster files +- Remove csm-converter.tar.gz as the evms was last present on sle10 + and thus migration is bit out of scope today + +------------------------------------------------------------------- +Tue May 3 09:23:48 UTC 2016 - [email protected] + +- Add pre_checkin.sh to allow syncing of patches between packages: + workflow = add everything to lvm2.spec and run pre_checkin.sh + +------------------------------------------------------------------- +Mon May 2 17:41:55 UTC 2016 - [email protected] + +- Refresh patch use-mirrortype-asdefault-whenclvmdrunning.patch to + work without clvm code enabled + +------------------------------------------------------------------- +Mon May 2 17:29:09 UTC 2016 - [email protected] + +- Regenerate lvm2 tmpfiles after install so they won't populate just + after the reboot +- Split out lvm2 libraries to separate subpkgs per standards +- Rename versioning of plugins patch: + * version-plugins-in-libdir -> version-plugins-in-libdir.patch + +------------------------------------------------------------------- +Mon May 2 16:51:09 UTC 2016 - [email protected] + +- Remove evms provides/obsoletes, last seen on sle10 +- Mark configs as such +- Ghost the during-run created dirs +- Install rcbla compat service symlinks + +------------------------------------------------------------------- +Mon May 2 15:13:35 UTC 2016 - [email protected] + +- Sync with device-mapper.spec, build only lvm and wipe devicemapper + binaries +- Install in /usr there is no technical reason to keep this out + of /usr + +------------------------------------------------------------------- +Mon May 2 13:23:49 UTC 2016 - [email protected] + +- Split out device-mapper and clvm to separate spec files + * No factual changes just deletion in the spec to keep it out + of interacting with those parts + +------------------------------------------------------------------- +Fri Apr 29 11:05:04 UTC 2016 - [email protected] + +- Do not explicitely require expat it is only used by thin_provisioning + +------------------------------------------------------------------- +Thu Apr 28 20:40:17 UTC 2016 - [email protected] + +- There is no factual reason to keep the device mapper out of /usr + so just match everything else + +------------------------------------------------------------------- +Thu Apr 28 20:12:48 UTC 2016 - [email protected] + +- Remove device-mapper-static.patch as there should be no need to + have static library here and it can be reenabled with some explanation + if needed + +------------------------------------------------------------------- +Thu Apr 28 19:57:54 UTC 2016 - [email protected] + +- Rename device-mapper-link to device-mapper-link.patch + +------------------------------------------------------------------- +Mon Mar 7 01:53:34 UTC 2016 - [email protected] + +- not output error message inside retry loops to avoid noisy error + message being output inside retry loops in case of remove failure + because device busy. (bsc#940298 boo#957059) + add: libdm-iface-not-output-error-message-inside-retry-loop.patch + +------------------------------------------------------------------- +Thu Jan 28 03:47:31 UTC 2016 - [email protected] + +- Add 'Also=lvm2-lvmetad.socket' in '[Install]' section of lvm2-lvmetad. + service to remove lvm2-lvmetad.socket when disable lvm2-lvmetad.service. + (bsc#960044) + add: lvm2-lvmetad.service-add-Also-lvm2-lvmetad.socket.patch + +------------------------------------------------------------------- +Wed Jan 27 05:38:07 UTC 2016 - [email protected] + +- Split thin-provisioning-tools from lvm2 package for easier maintenance. +- Update to lvm2-2.02.141 (device-mapper-1.02.115) + - Remove patches: + lvm2-do-not-strip-pdata_tools.patch: thin-provisioning-tools patch + lvmetad.c-ignore-lvmetad-global-handle-on-disconnect.patch: + already in upstream + no_buildroot_shared.diff: LVM_SHARED_PATH dropped by upstream + +------------------------------------------------------------------- +Mon Dec 14 14:52:00 CET 2015 - [email protected] + +- Fix missing dependency on coreutils for initrd macros (boo#958562) +- Call missing initrd macro at postun (boo#958562) + +------------------------------------------------------------------- +Fri Dec 11 16:03:58 UTC 2015 - [email protected] + +- Re-add lvm2-do-not-strip-pdata_tools.patch: this is still needed. + +------------------------------------------------------------------- +Tue Aug 25 02:27:10 UTC 2015 - [email protected] + +- Fix boot failed due to segfault at libc (bnc#942755) + add: lvmetad.c-ignore-lvmetad-global-handle-on-disconnect.patch + +------------------------------------------------------------------- +Thu Aug 6 06:13:20 UTC 2015 - [email protected] + +- fix spec to change /sbin/thin-check to %{_sbindir}/thin-check. + (bnc#940754) + +------------------------------------------------------------------- +Mon Jul 27 19:35:15 UTC 2015 - [email protected] + +- Update thin-provisioning tools to 0.5.3 + * Fix bug where the tools would crash if given a very large + metadata device to restore to. + * - thin_delta, thin_trim + * --clear-needs-check flag for cache_check + * space map checking for thin check +- Drop unnecessary lvm2-do-not-strip-pdata_tools.patch + +------------------------------------------------------------------- +Fri Jul 24 13:16:09 UTC 2015 - [email protected] + +- Allow building without clvm (boo#923127) + Keep clvm2 building by default + +------------------------------------------------------------------- +Tue Jul 14 09:05:13 UTC 2015 - [email protected] + ++++ 1489 more lines (skipped) ++++ between /dev/null ++++ and /work/SRC/openSUSE:Factory/.lvm2.new/device-mapper.changes New Changes file: lvm2-clvm.changes: same change --- /work/SRC/openSUSE:Factory/lvm2/lvm2.changes 2016-03-09 15:15:57.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.lvm2.new/lvm2.changes 2016-06-02 09:35:19.000000000 +0200 @@ -1,0 +2,127 @@ +Thu May 19 12:07:09 UTC 2016 - [email protected] + +- Add compat symlinks for binaries to /sbin/ to avoid errors on + hardcoded systems, obsolete them with leap 43 + +------------------------------------------------------------------- +Thu May 12 08:12:54 UTC 2016 - [email protected] + +- Add conflicts on unsplit packages to allow smooth upgrade path + Also do the conflict properly in baselibs.conf + +------------------------------------------------------------------- +Wed May 11 07:54:19 UTC 2016 - [email protected] + +- Add dependencies to the devel pacakge in baselibs.conf + +------------------------------------------------------------------- +Wed May 4 10:36:40 UTC 2016 - [email protected] + +- Update patch use-mirrortype-asdefault-whenclvmdrunning.patch + to match up the patches/pvmove_support_clustered_vg.diff and not + use the define declared only when building clvm codebase; + it is still broken if someone changes the PID location, but at least + it now does not depend on clvm code +- Regenerate_initrd in post of the lvm2 main pkg +- Update baselibs to point to split-out devicemapper libraries + +------------------------------------------------------------------- +Wed May 4 09:27:30 UTC 2016 - [email protected] + +- Keep in sync the common configuration options that are shared among + all the variants dm/lvm2/clvm + +------------------------------------------------------------------- +Tue May 3 14:03:30 UTC 2016 - [email protected] + +- Provide symlinks to 1.02 versions of dm and dm-event libs + * this should sort out binary packages without the need of double + rebuilding + +------------------------------------------------------------------- +Tue May 3 13:23:52 UTC 2016 - [email protected] + +- Update to 2.02.152 release, read WHATS_NEW for detailed log. +- Refresh patches: + * 10-dm.rules-Reset-state-variable-for-spurious-events.patch + * device-mapper-gcc-warnings.patch + * device-mapper-link.patch + * udev-Check-for-DM_NR_VALID_PATHS.patch +- Slightly tweak btrfs patch as the code changed for the detection: + * fsadm-add-support-for-btrfs.patch + +------------------------------------------------------------------- +Tue May 3 12:55:34 UTC 2016 - [email protected] + +- Build and install properly cluster files +- Remove csm-converter.tar.gz as the evms was last present on sle10 + and thus migration is bit out of scope today + +------------------------------------------------------------------- +Tue May 3 09:23:48 UTC 2016 - [email protected] + +- Add pre_checkin.sh to allow syncing of patches between packages: + workflow = add everything to lvm2.spec and run pre_checkin.sh + +------------------------------------------------------------------- +Mon May 2 17:41:55 UTC 2016 - [email protected] + +- Refresh patch use-mirrortype-asdefault-whenclvmdrunning.patch to + work without clvm code enabled + +------------------------------------------------------------------- +Mon May 2 17:29:09 UTC 2016 - [email protected] + +- Regenerate lvm2 tmpfiles after install so they won't populate just + after the reboot +- Split out lvm2 libraries to separate subpkgs per standards +- Rename versioning of plugins patch: + * version-plugins-in-libdir -> version-plugins-in-libdir.patch + +------------------------------------------------------------------- +Mon May 2 16:51:09 UTC 2016 - [email protected] + +- Remove evms provides/obsoletes, last seen on sle10 +- Mark configs as such +- Ghost the during-run created dirs +- Install rcbla compat service symlinks + +------------------------------------------------------------------- +Mon May 2 15:13:35 UTC 2016 - [email protected] + +- Sync with device-mapper.spec, build only lvm and wipe devicemapper + binaries +- Install in /usr there is no technical reason to keep this out + of /usr + +------------------------------------------------------------------- +Mon May 2 13:23:49 UTC 2016 - [email protected] + +- Split out device-mapper and clvm to separate spec files + * No factual changes just deletion in the spec to keep it out + of interacting with those parts + +------------------------------------------------------------------- +Fri Apr 29 11:05:04 UTC 2016 - [email protected] + +- Do not explicitely require expat it is only used by thin_provisioning + +------------------------------------------------------------------- +Thu Apr 28 20:40:17 UTC 2016 - [email protected] + +- There is no factual reason to keep the device mapper out of /usr + so just match everything else + +------------------------------------------------------------------- +Thu Apr 28 20:12:48 UTC 2016 - [email protected] + +- Remove device-mapper-static.patch as there should be no need to + have static library here and it can be reenabled with some explanation + if needed + +------------------------------------------------------------------- +Thu Apr 28 19:57:54 UTC 2016 - [email protected] + +- Rename device-mapper-link to device-mapper-link.patch + +------------------------------------------------------------------- Old: ---- LVM2.2.02.141.tgz LVM2.2.02.141.tgz.asc csm-converter.tar.gz device-mapper-link device-mapper-static.patch version-plugins-in-libdir New: ---- LVM2.2.02.152.tgz LVM2.2.02.152.tgz.asc device-mapper-link.patch device-mapper.changes device-mapper.spec lvm2-clvm.changes lvm2-clvm.spec pre_checkin.sh version-plugins-in-libdir.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ device-mapper.spec ++++++ # # spec file for package device-mapper # # Copyright (c) 2016 SUSE LINUX 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/ # ### COMMON-DEF-BEGIN ### %define lvm2_version 2.02.152 %define device_mapper_version 1.02.124 ### COMMON-DEF-END ### %define libname libdevmapper1_03 %define libname_event libdevmapper-event1_03 Name: device-mapper Version: %{device_mapper_version} Release: 0 Summary: Device Mapper Tools License: GPL-2.0 and LGPL-2.1 Group: System/Base Url: http://www.sourceware.org/lvm2/ Source: ftp://sources.redhat.com/pub/lvm2/LVM2.%{lvm2_version}.tgz Source1: ftp://sources.redhat.com/pub/lvm2/LVM2.%{lvm2_version}.tgz.asc Source99: baselibs.conf ### COMMON-PATCH-BEGIN ### # Upstream patches first Patch1001: improve_probing.diff Patch1002: no-inc-audit.diff Patch1004: sys_mount_instead_linux_fs.diff #suse Patch1005: display-dm-name-for-lv-name.diff Patch1006: device-mapper-type_punning.diff #fate312248, patch6,7 Patch1007: make-mirror-legs-on-different-tag-pvs.patch Patch1008: improve-mirror-legs-on-different-tag-pvs.patch #fate#315092 Patch1009: cmirrord_improvment_performance.patch #fate#314367, patch10,11 Patch1010: cluster_support_mirrord_log.diff Patch1011: lvconvert-cluster-mirrored-disk-failed.patch #forward-port from sle11 Patch1012: suppress_format1_size_warning.diff Patch1013: pvmove_support_clustered_vg.diff # Never upstream Patch1014: cmirrord_remove_date_time_from_compilation.patch #suse, bnc873538 Patch1015: fix-closedown-before-thread-finish.patch #suse, bnc#870824 Patch1016: use-mirrortype-asdefault-whenclvmdrunning.patch Patch1017: version-plugins-in-libdir.patch Patch1018: dmeventd-fix-dso-name-wrong-compare.patch Patch1019: lvm2-lvmetad.service-add-Also-lvm2-lvmetad.socket.patch #suse, bnc#707253(also merged patch for bnc#479104) Patch2000: device-mapper-dmsetup-export.patch Patch2001: device-mapper-gcc-warnings.patch Patch2002: device-mapper-link.patch #suse, bnc#78902,bnc#789019,bnc#789020 Patch2003: udev_rules-update.diff #suse, bnc#875233 Patch2004: udev-Check-for-DM_NR_VALID_PATHS.patch Patch2005: fsadm-add-support-for-btrfs.patch Patch2006: Import-ID_FS_XXX-variables-bnc909358.patch Patch2007: 10-dm.rules-Reset-state-variable-for-spurious-events.patch Patch2008: libdm-iface-not-output-error-message-inside-retry-loop.patch ### COMMON-PATCH-END ### BuildRequires: gcc-c++ BuildRequires: pkg-config BuildRequires: suse-module-tools BuildRequires: pkgconfig(libselinux) BuildRequires: pkgconfig(libsepol) BuildRequires: pkgconfig(libudev) BuildRequires: pkgconfig(systemd) Requires: thin-provisioning-tools >= 0.5.6 Requires(post): coreutils BuildRoot: %{_tmppath}/%{name}-%{version}-build %{?systemd_requires} %description Programs and man pages for configuring and using the device mapper. %package -n %{libname} Summary: Library for device-mapper Group: System/Libraries Conflicts: %{name} < %{version} %description -n %{libname} Device mapper main shared library %package -n %{libname_event} Summary: Event library for device-mapper Group: System/Libraries Conflicts: %{name} < %{version} %description -n %{libname_event} Device mapper event daemon shared library %package devel Summary: Development package for the device mapper Group: Development/Libraries/C and C++ Requires: %{libname_event} = %{device_mapper_version} Requires: %{libname} = %{device_mapper_version} Requires: device-mapper = %{device_mapper_version} %description devel Files needed for software development using the device mapper %prep %setup -q -n LVM2.%{lvm2_version} ### COMMON-PREP-BEGIN ### %patch1001 -p1 %patch1002 -p1 %patch1004 -p1 %patch1005 -p1 %patch1006 -p1 %patch1007 -p1 %patch1008 -p1 %patch1009 -p1 %patch1010 -p1 %patch1011 -p1 %patch1012 -p1 %patch1013 -p1 %patch1014 -p1 %patch1015 -p1 %patch1016 -p1 %patch1017 -p1 %patch1018 -p1 %patch1019 -p1 %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 %patch2003 -p1 %patch2004 -p1 %patch2005 -p1 %patch2006 -p1 %patch2007 -p1 %patch2008 -p1 ### COMMON-PREP-END ### %build extra_opts="" ### COMMON-CONFIG-BEGIN ### export PATH=$PATH:/sbin:%{_prefix}/sbin sed -ie "s/%{device_mapper_version}/1.03.01/g" VERSION_DM %configure \ --enable-dmeventd --enable-cmdlib \ --enable-udev_rules --enable-udev_sync \ --with-udev-prefix="%{_prefix}/" \ --enable-selinux \ --enable-pkgconfig \ --with-usrlibdir=%{_libdir} \ --with-usrsbindir=%{_sbindir} \ --with-default-dm-run-dir=/run \ --with-tmpfilesdir=%{_tmpfilesdir} \ --with-thin=internal \ --with-device-gid=6 \ --with-device-mode=0640 \ --with-device-uid=0 \ --with-dmeventd-path=%{_sbindir}/dmeventd \ --with-thin-check=%{_sbindir}/thin_check \ --with-thin-dump=%{_sbindir}/thin_dump \ --with-thin-repair=%{_sbindir}/thin_repair \ $extra_opts ### COMMON-CONFIG-END ### make %{?_smp_mflags} device-mapper %install make DESTDIR=%{buildroot} \ install_device-mapper \ install_systemd_units install_systemd_generators ln -s service %{buildroot}/%{_sbindir}/rcdm-event # provide 1.02 compat links for the shared libraries # this is needed for various binary packages ln -s libdevmapper.so.1.03 %{buildroot}/%{_libdir}/libdevmapper.so.1.02 ln -s libdevmapper-event.so.1.03 %{buildroot}/%{_libdir}/libdevmapper-event.so.1.02 # remove blkd, will be in lvm2 proper # without force on purpose to detect changes and fail if it happens rm %{buildroot}%{_sbindir}/blkdeactivate rm %{buildroot}%{_unitdir}/blk-availability.service rm %{buildroot}%{_unitdir}/lvm2-monitor.service rm %{buildroot}%{_mandir}/man8/blkdeactivate.8 rm %{buildroot}%{_mandir}/man8/lvm2-activation-generator.8 # compat symlinks in /sbin remove with Leap 43 mkdir -p %{buildroot}/sbin ln -s %{_sbindir}/dmsetup %{buildroot}/sbin/dmsetup %post %service_add_post dm-event.service dm-event.socket %{?regenerate_initrd_post} %posttrans %{?regenerate_initrd_posttrans} %pre %service_add_pre dm-event.service dm-event.socket %preun %service_del_preun dm-event.service dm-event.socket %postun %service_del_postun dm-event.service dm-event.socket %{?regenerate_initrd_post} %post -n %{libname} -p /sbin/ldconfig %postun -n %{libname} -p /sbin/ldconfig %post -n %{libname_event} -p /sbin/ldconfig %postun -n %{libname_event} -p /sbin/ldconfig %files -n %{libname} %defattr(-,root,root) %{_libdir}/libdevmapper.so.1.03 %{_libdir}/libdevmapper.so.1.02 %files -n %{libname_event} %defattr(-,root,root) %{_libdir}/libdevmapper-event.so.1.03 %{_libdir}/libdevmapper-event.so.1.02 %files %defattr(-,root,root) %doc COPYING COPYING.LIB README %doc udev/12-dm-permissions.rules /sbin/dmsetup %{_sbindir}/dmsetup %{_sbindir}/dmeventd %{_sbindir}/dmstats %{_mandir}/man8/dmstats.8.* %{_mandir}/man8/dmsetup.8.* %{_mandir}/man8/dmeventd.8.* %{_udevrulesdir}/10-dm.rules %{_udevrulesdir}/13-dm-disk.rules %{_udevrulesdir}/95-dm-notify.rules %{_unitdir}/dm-event.socket %{_sbindir}/rcdm-event %{_unitdir}/dm-event.service %files devel %defattr(-,root,root) %{_libdir}/libdevmapper.so %{_libdir}/libdevmapper-event.so %{_includedir}/libdevmapper*.h %{_libdir}/pkgconfig/devmapper*.pc %changelog ++++++ lvm2-clvm.spec ++++++ # # spec file for package lvm2-clvm # # Copyright (c) 2016 SUSE LINUX 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/ # ### COMMON-DEF-BEGIN ### %define lvm2_version 2.02.152 %define device_mapper_version 1.02.124 ### COMMON-DEF-END ### Name: lvm2-clvm Version: %{lvm2_version} Release: 0 Summary: Clustered LVM2 License: GPL-2.0 and LGPL-2.1 Group: Productivity/Clustering/HA Url: http://sources.redhat.com/cluster/clvm/ Source: ftp://sources.redhat.com/pub/lvm2/LVM2.%{lvm2_version}.tgz Source1: ftp://sources.redhat.com/pub/lvm2/LVM2.%{lvm2_version}.tgz.asc Source2: clvmd.ocf Source3: cmirrord.ocf ### COMMON-PATCH-BEGIN ### # Upstream patches first Patch1001: improve_probing.diff Patch1002: no-inc-audit.diff Patch1004: sys_mount_instead_linux_fs.diff #suse Patch1005: display-dm-name-for-lv-name.diff Patch1006: device-mapper-type_punning.diff #fate312248, patch6,7 Patch1007: make-mirror-legs-on-different-tag-pvs.patch Patch1008: improve-mirror-legs-on-different-tag-pvs.patch #fate#315092 Patch1009: cmirrord_improvment_performance.patch #fate#314367, patch10,11 Patch1010: cluster_support_mirrord_log.diff Patch1011: lvconvert-cluster-mirrored-disk-failed.patch #forward-port from sle11 Patch1012: suppress_format1_size_warning.diff Patch1013: pvmove_support_clustered_vg.diff # Never upstream Patch1014: cmirrord_remove_date_time_from_compilation.patch #suse, bnc873538 Patch1015: fix-closedown-before-thread-finish.patch #suse, bnc#870824 Patch1016: use-mirrortype-asdefault-whenclvmdrunning.patch Patch1017: version-plugins-in-libdir.patch Patch1018: dmeventd-fix-dso-name-wrong-compare.patch Patch1019: lvm2-lvmetad.service-add-Also-lvm2-lvmetad.socket.patch #suse, bnc#707253(also merged patch for bnc#479104) Patch2000: device-mapper-dmsetup-export.patch Patch2001: device-mapper-gcc-warnings.patch Patch2002: device-mapper-link.patch #suse, bnc#78902,bnc#789019,bnc#789020 Patch2003: udev_rules-update.diff #suse, bnc#875233 Patch2004: udev-Check-for-DM_NR_VALID_PATHS.patch Patch2005: fsadm-add-support-for-btrfs.patch Patch2006: Import-ID_FS_XXX-variables-bnc909358.patch Patch2007: 10-dm.rules-Reset-state-variable-for-spurious-events.patch Patch2008: libdm-iface-not-output-error-message-inside-retry-loop.patch ### COMMON-PATCH-END ### BuildRequires: libcorosync-devel BuildRequires: libdlm-devel BuildRequires: pkgconfig BuildRequires: pkgconfig(devmapper) BuildRequires: pkgconfig(libudev) Requires: corosync Requires: device-mapper >= %{device_mapper_version} Requires: lvm2 = %{version} Requires: lvm2-cmirrord Obsoletes: cmirrord < %{version} Provides: cmirrord = %{version} %description A daemon for using LVM2 Logival Volumes in a clustered environment. %package -n lvm2-cmirrord Summary: Clustered RAID 1 support using device-mapper and corosync Group: Productivity/Clustering/HA Requires: corosync Requires: device-mapper >= %{device_mapper_version} Requires: lvm2 = %{version} Requires: lvm2-clvm %description -n lvm2-cmirrord A daemon for using LVM2 Logival Volumes in a clustered environment. %prep %setup -q -n LVM2.%{lvm2_version} ### COMMON-PREP-BEGIN ### %patch1001 -p1 %patch1002 -p1 %patch1004 -p1 %patch1005 -p1 %patch1006 -p1 %patch1007 -p1 %patch1008 -p1 %patch1009 -p1 %patch1010 -p1 %patch1011 -p1 %patch1012 -p1 %patch1013 -p1 %patch1014 -p1 %patch1015 -p1 %patch1016 -p1 %patch1017 -p1 %patch1018 -p1 %patch1019 -p1 %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 %patch2003 -p1 %patch2004 -p1 %patch2005 -p1 %patch2006 -p1 %patch2007 -p1 %patch2008 -p1 ### COMMON-PREP-END ### %build extra_opts=" --with-default-locking-dir=/run/lock/lvm --with-default-pid-dir=/run --with-default-run-dir=/run/lvm --with-clvmd=corosync --with-cluster=internal --enable-cmirrord " ### COMMON-CONFIG-BEGIN ### export PATH=$PATH:/sbin:%{_prefix}/sbin sed -ie "s/%{device_mapper_version}/1.03.01/g" VERSION_DM %configure \ --enable-dmeventd --enable-cmdlib \ --enable-udev_rules --enable-udev_sync \ --with-udev-prefix="%{_prefix}/" \ --enable-selinux \ --enable-pkgconfig \ --with-usrlibdir=%{_libdir} \ --with-usrsbindir=%{_sbindir} \ --with-default-dm-run-dir=/run \ --with-tmpfilesdir=%{_tmpfilesdir} \ --with-thin=internal \ --with-device-gid=6 \ --with-device-mode=0640 \ --with-device-uid=0 \ --with-dmeventd-path=%{_sbindir}/dmeventd \ --with-thin-check=%{_sbindir}/thin_check \ --with-thin-dump=%{_sbindir}/thin_dump \ --with-thin-repair=%{_sbindir}/thin_repair \ $extra_opts ### COMMON-CONFIG-END ### make %{?_smp_mflags} %install make DESTDIR=%{buildroot} \ install_cluster \ install_systemd_units install_systemd_generators make DESTDIR=%{buildroot} install -C daemons/cmirrord # ocf files install -m755 -D %{SOURCE2} "%{buildroot}/%{_libexecdir}/ocf/resource.d/lvm2/clvmd" install -m755 -D %{SOURCE3} "%{buildroot}/%{_libexecdir}/ocf/resource.d/lvm2/cmirrord" # rc services symlinks ln -s service %{buildroot}%{_sbindir}/rclvm2-cluster-activation ln -s service %{buildroot}%{_sbindir}/rclvm2-clvmd ln -s service %{buildroot}%{_sbindir}/rclvm2-cmirrord # remove files from lvm2 split due to systemd_generators picking them up rm %{buildroot}%{_unitdir}/blk-availability.service rm %{buildroot}%{_unitdir}/dm-event.service rm %{buildroot}%{_unitdir}/dm-event.socket rm %{buildroot}%{_unitdir}/lvm2-monitor.service rm %{buildroot}%{_mandir}/man8/lvm2-activation-generator.8 %pre %service_add_pre lvm2-cluster-activation.service lvm2-clvmd.service %post %service_add_post lvm2-cluster-activation.service lvm2-clvmd.service %preun %service_del_preun lvm2-cluster-activation.service lvm2-clvmd.service %postun %service_del_postun lvm2-cluster-activation.service lvm2-clvmd.service %pre -n lvm2-cmirrord %service_add_pre lvm2-cmirrord.service lvm2-cluster-activation.service %post -n lvm2-cmirrord %service_add_post lvm2-cmirrord.service lvm2-cluster-activation.service %preun -n lvm2-cmirrord %service_del_preun lvm2-cmirrord.service lvm2-cluster-activation.service %postun -n lvm2-cmirrord %service_del_postun lvm2-cmirrord.service lvm2-cluster-activation.service %files %defattr(-,root,root) %{_sbindir}/clvmd %{_sbindir}/rclvm2-cluster-activation %{_sbindir}/rclvm2-clvmd %dir %{_libexecdir}/ocf %dir %{_libexecdir}/ocf/resource.d %dir %{_libexecdir}/ocf/resource.d/lvm2 %{_libexecdir}/ocf/resource.d/lvm2/clvmd %{_mandir}/man8/clvmd.8.* %{_unitdir}/lvm2-clvmd.service %{_unitdir}/lvm2-cluster-activation.service %{_libexecdir}/systemd/lvm2-cluster-activation %files -n lvm2-cmirrord %defattr(-,root,root) %{_sbindir}/cmirrord %{_sbindir}/rclvm2-cmirrord %{_libexecdir}/ocf/resource.d/lvm2/cmirrord %{_mandir}/man8/cmirrord.8.* %{_libexecdir}/systemd/system/lvm2-cmirrord.service %changelog ++++++ lvm2.spec ++++++ ++++ 657 lines (skipped) ++++ between /work/SRC/openSUSE:Factory/lvm2/lvm2.spec ++++ and /work/SRC/openSUSE:Factory/.lvm2.new/lvm2.spec ++++++ 10-dm.rules-Reset-state-variable-for-spurious-events.patch ++++++ --- /var/tmp/diff_new_pack.OtJzwf/_old 2016-06-02 09:35:21.000000000 +0200 +++ /var/tmp/diff_new_pack.OtJzwf/_new 2016-06-02 09:35:21.000000000 +0200 @@ -1,12 +1,12 @@ References: bsc#932300 --- -Index: LVM2.2.02.120/udev/10-dm.rules.in +Index: LVM2.2.02.152/udev/10-dm.rules.in =================================================================== ---- LVM2.2.02.120.orig/udev/10-dm.rules.in -+++ LVM2.2.02.120/udev/10-dm.rules.in -@@ -127,6 +127,11 @@ ENV{DM_UDEV_DISABLE_DM_RULES_FLAG}!="1", - # We have to ignore further rule application for inappropriate events - # and devices. But still send the notification if cookie exists. +--- LVM2.2.02.152.orig/udev/10-dm.rules.in ++++ LVM2.2.02.152/udev/10-dm.rules.in +@@ -138,6 +138,11 @@ ENV{DM_UDEV_RULES_VSN}="2" + + ENV{DM_UDEV_DISABLE_DM_RULES_FLAG}!="1", ENV{DM_NAME}=="?*", SYMLINK+="(DM_DIR)/$env{DM_NAME}" +# Reset variables for spurious events +ENV{DM_UDEV_DISABLE_SUBSYSTEM_RULES_FLAG}="" ++++++ LVM2.2.02.141.tgz -> LVM2.2.02.152.tgz ++++++ ++++ 35191 lines of diff (skipped) ++++++ baselibs.conf ++++++ --- /var/tmp/diff_new_pack.OtJzwf/_old 2016-06-02 09:35:21.000000000 +0200 +++ /var/tmp/diff_new_pack.OtJzwf/_new 2016-06-02 09:35:21.000000000 +0200 @@ -1,2 +1,7 @@ -device-mapper +libdevmapper1_03 + conflicts "device-mapper-<targettype> < <version>" +libdevmapper-event1_03 + conflicts "device-mapper-<targettype> < <version>" device-mapper-devel + requires "libdevmapper1_03-<targettype> = <version>" + requires "libdevmapper-event1_03-<targettype> = <version>" ++++++ device-mapper-gcc-warnings.patch ++++++ --- /var/tmp/diff_new_pack.OtJzwf/_old 2016-06-02 09:35:21.000000000 +0200 +++ /var/tmp/diff_new_pack.OtJzwf/_new 2016-06-02 09:35:21.000000000 +0200 @@ -1,7 +1,7 @@ -Index: LVM2.2.02.139/libdm/datastruct/hash.c +Index: LVM2.2.02.152/libdm/datastruct/hash.c =================================================================== ---- LVM2.2.02.139.orig/libdm/datastruct/hash.c -+++ LVM2.2.02.139/libdm/datastruct/hash.c +--- LVM2.2.02.152.orig/libdm/datastruct/hash.c ++++ LVM2.2.02.152/libdm/datastruct/hash.c @@ -20,7 +20,7 @@ struct dm_hash_node { void *data; unsigned data_len; @@ -30,14 +30,14 @@ } void *dm_hash_get_data(struct dm_hash_table *t __attribute__((unused)), -Index: LVM2.2.02.139/libdm/ioctl/libdm-iface.c +Index: LVM2.2.02.152/libdm/ioctl/libdm-iface.c =================================================================== ---- LVM2.2.02.139.orig/libdm/ioctl/libdm-iface.c -+++ LVM2.2.02.139/libdm/ioctl/libdm-iface.c +--- LVM2.2.02.152.orig/libdm/ioctl/libdm-iface.c ++++ LVM2.2.02.152/libdm/ioctl/libdm-iface.c @@ -1834,7 +1834,7 @@ static struct dm_ioctl *_do_dm_ioctl(str - dmt->secure_data ? "W " : "", - dmt->query_inactive_table ? "I " : "", - dmt->enable_checks ? "C" : "", + dmt->secure_data ? "securedata " : "", + dmt->query_inactive_table ? "inactive " : "", + dmt->enable_checks ? "enablechecks " : "", - dmt->sector, _sanitise_message(dmt->message), + (unsigned long long int)dmt->sector, _sanitise_message(dmt->message), dmi->data_size, retry_repeat_count); ++++++ device-mapper-link.patch ++++++ Make sure /dev/device-mapper exists as a link to /dev/mapper/control Resolves: bnc#724578 Signed-off-by: NeilBrown <[email protected]> --- udev/10-dm.rules.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: LVM2.2.02.152/udev/10-dm.rules.in =================================================================== --- LVM2.2.02.152.orig/udev/10-dm.rules.in +++ LVM2.2.02.152/udev/10-dm.rules.in @@ -28,7 +28,7 @@ # Also, keep in mind that recent rules may also require recent # subsystem-specific binaries. -KERNEL=="device-mapper", NAME="(DM_DIR)/control" +KERNEL=="device-mapper", NAME="(DM_DIR)/control", SYMLINK+="device-mapper" SUBSYSTEM!="block", GOTO="dm_end" KERNEL!="dm-[0-9]*", GOTO="dm_end" ++++++ fsadm-add-support-for-btrfs.patch ++++++ --- /var/tmp/diff_new_pack.OtJzwf/_old 2016-06-02 09:35:21.000000000 +0200 +++ /var/tmp/diff_new_pack.OtJzwf/_new 2016-06-02 09:35:21.000000000 +0200 @@ -21,10 +21,10 @@ scripts/fsadm.sh | 104 ++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 88 insertions(+), 16 deletions(-) -diff --git a/scripts/fsadm.sh b/scripts/fsadm.sh -index f4ea796..765f9dc 100755 ---- a/scripts/fsadm.sh -+++ b/scripts/fsadm.sh +Index: LVM2.2.02.152/scripts/fsadm.sh +=================================================================== +--- LVM2.2.02.152.orig/scripts/fsadm.sh ++++ LVM2.2.02.152/scripts/fsadm.sh @@ -22,6 +22,7 @@ # ext2/ext3/ext4: resize2fs, tune2fs # reiserfs: resize_reiserfs, reiserfstune @@ -49,9 +49,9 @@ +UUID= +BTRFS_DEVID= PROCMOUNTS="/proc/mounts" + PROCSELFMOUNTINFO="/proc/self/mountinfo" NULL="$DM_DEV_DIR/null" - -@@ -147,7 +152,7 @@ cleanup() { +@@ -148,7 +153,7 @@ cleanup() { export _FSADM_YES _FSADM_EXTOFF unset FSADM_RUNNING test -n "$LVM_BINARY" && PATH=$_SAVEPATH @@ -60,7 +60,7 @@ fi # error exit status for break -@@ -198,27 +203,62 @@ detect_fs() { +@@ -207,6 +212,34 @@ detect_fs() { verbose "\"$FSTYPE\" filesystem found on \"$VOLUME\"" } @@ -92,59 +92,30 @@ + IFS=$STR_IFS +} + + detect_mounted_with_proc_self_mountinfo() { + MOUNTED=$("$GREP" "^[0-9]* [0-9]* $MAJORMINOR " "$PROCSELFMOUNTINFO") + +@@ -243,7 +276,11 @@ detect_mounted_with_proc_mounts() { # check if the given device is already mounted and where # FIXME: resolve swap usage and device stacking detect_mounted() { -- test -e "$PROCMOUNTS" || error "Cannot detect mounted device \"$VOLUME\"" +- if test -e "$PROCSELFMOUNTINFO"; then + if test "$FSTYPE" = "btrfs" ; then + check_findmnt || error "Need 'findmnt' utility to work with btrfs filesystem" + detect_fs_uuid || verbose "Can't get fs UUID from \"$VOLUME\" volume" + detect_mounted_findmnt -+ -+ else -+ test -e "$PROCMOUNTS" || error "Cannot detect mounted device \"$VOLUME\"" - -- MOUNTED=$("$GREP" "^$VOLUME[ \t]" "$PROCMOUNTS") -+ MOUNTED=$("$GREP" "^$VOLUME[ \t]" "$PROCMOUNTS") - -- # for empty string try again with real volume name -- test -z "$MOUNTED" && MOUNTED=$("$GREP" "^$RVOLUME[ \t]" "$PROCMOUNTS") -+ # for empty string try again with real volume name -+ test -z "$MOUNTED" && MOUNTED=$("$GREP" "^$RVOLUME[ \t]" "$PROCMOUNTS") - -- # cut device name prefix and trim everything past mountpoint -- # echo translates \040 to spaces -- MOUNTED=${MOUNTED#* } -- MOUNTED=$(echo -n -e ${MOUNTED%% *}) -+ # cut device name prefix and trim everything past mountpoint -+ # echo translates \040 to spaces -+ MOUNTED=${MOUNTED#* } -+ MOUNTED=$(echo -n -e ${MOUNTED%% *}) - -- # for systems with different device names - check also mount output -- if test -z "$MOUNTED" ; then -- MOUNTED=$(LC_ALL=C "$MOUNT" | "$GREP" "^$VOLUME[ \t]") -- test -z "$MOUNTED" && MOUNTED=$(LC_ALL=C "$MOUNT" | "$GREP" "^$RVOLUME[ \t]") -- MOUNTED=${MOUNTED##* on } -- MOUNTED=${MOUNTED% type *} # allow type in the mount name -+ # for systems with different device names - check also mount output -+ if test -z "$MOUNTED" ; then -+ MOUNTED=$(LC_ALL=C "$MOUNT" | "$GREP" "^$VOLUME[ \t]") -+ test -z "$MOUNTED" && MOUNTED=$(LC_ALL=C "$MOUNT" | "$GREP" "^$RVOLUME[ \t]") -+ MOUNTED=${MOUNTED##* on } -+ MOUNTED=${MOUNTED% type *} # allow type in the mount name -+ fi - fi - - test -n "$MOUNTED" -@@ -368,6 +408,31 @@ resize_xfs() { ++ elif test -e "$PROCSELFMOUNTINFO"; then + detect_mounted_with_proc_self_mountinfo + elif test -e "$PROCMOUNTS"; then + detect_mounted_with_proc_mounts +@@ -396,6 +433,31 @@ resize_xfs() { fi } +######################## +# Resize btrfs filesystem +# - mounted for upsize/downsize -+# - cannot resize when unmounted ++# - cannot resize when unmounted +######################## +resize_btrfs() { + detect_mounted @@ -169,7 +140,7 @@ #################### # Resize filesystem #################### -@@ -384,6 +449,7 @@ resize() { +@@ -412,6 +474,7 @@ resize() { "ext3"|"ext2"|"ext4") resize_ext $NEWSIZE ;; "reiserfs") resize_reiser $NEWSIZE ;; "xfs") resize_xfs $NEWSIZE ;; @@ -177,7 +148,7 @@ *) error "Filesystem \"$FSTYPE\" on device \"$VOLUME\" is not supported by this tool" ;; esac || error "Resize $FSTYPE failed" cleanup 0 -@@ -441,6 +507,12 @@ check() { +@@ -469,6 +532,12 @@ check() { # Think about better way.... dry "$XFS_REPAIR" -n -o force_geometry "$VOLUME" fi ;; @@ -190,15 +161,12 @@ *) # check if executed from interactive shell environment case "$-" in *i*) dry "$FSCK" $YES $FORCE "$VOLUME" ;; -@@ -462,7 +534,7 @@ test -n "$FSADM_RUNNING" && exit 0 +@@ -490,7 +559,7 @@ test -n "$FSADM_RUNNING" && exit 0 for i in "$TUNE_EXT" "$RESIZE_EXT" "$TUNE_REISER" "$RESIZE_REISER" \ "$TUNE_XFS" "$RESIZE_XFS" "$MOUNT" "$UMOUNT" "$MKDIR" \ "$RMDIR" "$BLOCKDEV" "$BLKID" "$GREP" "$READLINK" \ - "$DATE" "$FSCK" "$XFS_CHECK" "$XFS_REPAIR" "$LVM" ; do -+ "$DATE" "$FSCK" "$XFS_CHECK" "$XFS_REPAIR" "$LVM" "$BTRFS" ; do ++ "$DATE" "$FSCK" "$XFS_CHECK" "$XFS_REPAIR" "$LVM" "$BTRFS" ; do test -n "$i" || error "Required command definitions in the script are missing!" done --- -1.8.1.4 - ++++++ pre_checkin.sh ++++++ #!/usr/bin/env bash master="lvm2.spec" sections="COMMON-DEF COMMON-PATCH COMMON-PREP COMMON-CONFIG" for slave in device-mapper.spec lvm2-clvm.spec; do { prev=1 for section in $sections; do begin="/$section-BEGIN/" end="/$section-END/" sed -n -e "${prev},${begin}p" $slave sed -n -e "${begin},${end}p" $master | head -n -1 | tail -n +2 prev=$end done sed -n -e "${prev},\$p" $slave } > $slave.tmp && mv $slave.tmp $slave done # changelogs cp lvm2.changes lvm2-clvm.changes cp lvm2.changes device-mapper.changes ++++++ udev-Check-for-DM_NR_VALID_PATHS.patch ++++++ --- /var/tmp/diff_new_pack.OtJzwf/_old 2016-06-02 09:35:22.000000000 +0200 +++ /var/tmp/diff_new_pack.OtJzwf/_new 2016-06-02 09:35:22.000000000 +0200 @@ -18,22 +18,10 @@ udev/69-dm-lvm-metad.rules.in | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) -Index: LVM2.2.02.111/udev/10-dm.rules.in +Index: LVM2.2.02.152/udev/13-dm-disk.rules.in =================================================================== ---- LVM2.2.02.111.orig/udev/10-dm.rules.in -+++ LVM2.2.02.111/udev/10-dm.rules.in -@@ -126,7 +126,6 @@ ENV{DM_UDEV_DISABLE_DM_RULES_FLAG}!="1", - - # We have to ignore further rule application for inappropriate events - # and devices. But still send the notification if cookie exists. --ENV{DM_UUID}=="mpath-?*", ENV{DM_ACTION}=="PATH_FAILED", GOTO="dm_disable" - - # Avoid processing and scanning a DM device in the other (foreign) - # rules if it is in suspended state. However, we still keep 'disk' -Index: LVM2.2.02.111/udev/13-dm-disk.rules.in -=================================================================== ---- LVM2.2.02.111.orig/udev/13-dm-disk.rules.in -+++ LVM2.2.02.111/udev/13-dm-disk.rules.in +--- LVM2.2.02.152.orig/udev/13-dm-disk.rules.in ++++ LVM2.2.02.152/udev/13-dm-disk.rules.in @@ -18,10 +18,12 @@ SYMLINK+="disk/by-id/dm-name-$env{DM_NAM ENV{DM_UUID}=="?*", SYMLINK+="disk/by-id/dm-uuid-$env{DM_UUID}", OPTIONS+="string_escape=replace" @@ -47,10 +35,10 @@ ENV{DM_UDEV_LOW_PRIORITY_FLAG}=="1", OPTIONS+="link_priority=-100" OPTIONS+="watch" ENV{DM_TARGET_TYPES}=="*snapshot-origin*", OPTIONS+="link_priority=-90" -Index: LVM2.2.02.111/udev/69-dm-lvm-metad.rules.in +Index: LVM2.2.02.152/udev/69-dm-lvm-metad.rules.in =================================================================== ---- LVM2.2.02.111.orig/udev/69-dm-lvm-metad.rules.in -+++ LVM2.2.02.111/udev/69-dm-lvm-metad.rules.in +--- LVM2.2.02.152.orig/udev/69-dm-lvm-metad.rules.in ++++ LVM2.2.02.152/udev/69-dm-lvm-metad.rules.in @@ -47,6 +47,7 @@ ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="dis # DM device: ++++++ use-mirrortype-asdefault-whenclvmdrunning.patch ++++++ --- /var/tmp/diff_new_pack.OtJzwf/_old 2016-06-02 09:35:22.000000000 +0200 +++ /var/tmp/diff_new_pack.OtJzwf/_new 2016-06-02 09:35:22.000000000 +0200 @@ -2,10 +2,10 @@ tools/lvcreate.c | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) -Index: LVM2.2.02.139/tools/lvcreate.c +Index: LVM2.2.02.152/tools/lvcreate.c =================================================================== ---- LVM2.2.02.139.orig/tools/lvcreate.c -+++ LVM2.2.02.139/tools/lvcreate.c +--- LVM2.2.02.152.orig/tools/lvcreate.c ++++ LVM2.2.02.152/tools/lvcreate.c @@ -639,6 +639,28 @@ static int _read_activation_params(struc return 1; } @@ -15,7 +15,7 @@ + int fd; + struct flock lock; + -+ if((fd = open(CLVMD_PIDFILE, O_RDONLY)) < 0) ++ if((fd = open("/var/run/cmirrord.pid", O_RDONLY)) < 0) + return 0; + + lock.l_type = F_WRLCK; ++++++ version-plugins-in-libdir.patch ++++++ From: Jeff Mahoney <[email protected]> Subject: build: Install links in libdir with versions Plugins in $(libdir)/device-mapper should probably be versioned but when they're linked into $(libdir) directly, they must be versioned. Signed-off-by: Jeff Mahoney <[email protected]> --- make.tmpl.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/make.tmpl.in +++ b/make.tmpl.in @@ -394,7 +394,7 @@ install_lib_shared: $(LIB_SHARED) # when the code is fixed links could be removed. install_dm_plugin: $(LIB_SHARED) $(INSTALL_PROGRAM) -D $< $(libdir)/device-mapper/$(<F) - $(LN_S) -f device-mapper/$(<F) $(libdir)/$(<F) + $(LN_S) -f device-mapper/$(<F) $(libdir)/$(<F).$(LIB_VERSION) install_lvm2_plugin: $(LIB_SHARED) $(INSTALL_PROGRAM) -D $< $(libdir)/lvm2/$(<F)
