From 704f3c9b48dec0d567e177b97ff4033074e55f39 Mon Sep 17 00:00:00 2001 From: Peter Rajnoha Date: May 04 2015 12:47:56 +0000 Subject: New upstream release v2.02.119. --- diff --git a/.gitignore b/.gitignore index 5393607..e710e30 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,4 @@ /LVM2.2.02.115.tgz /LVM2.2.02.116.tgz /LVM2.2.02.118.tgz +/LVM2.2.02.119.tgz diff --git a/LVM2.2.02.116.tgz.asc b/LVM2.2.02.116.tgz.asc deleted file mode 100644 index c12b48f..0000000 --- a/LVM2.2.02.116.tgz.asc +++ /dev/null @@ -1,7 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v2.0.14 (GNU/Linux) - -iEYEABECAAYFAlTLr0QACgkQIoGRwVZ+LBc9zACfUCigIN9xYpsZLhxAz6J4Gx3n -H4MAoLAY++8ZzWZUDLS9BIyW/u8NPyxS -=fK6H ------END PGP SIGNATURE----- diff --git a/LVM2.2.02.118.tgz.asc b/LVM2.2.02.118.tgz.asc deleted file mode 100644 index 49f6b02..0000000 --- a/LVM2.2.02.118.tgz.asc +++ /dev/null @@ -1,7 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v2.0.14 (GNU/Linux) - -iEYEABECAAYFAlUQxcsACgkQIoGRwVZ+LBeixACguJS3FpEpQMxLEX9IHTyikEzz -vykAnid+xH8raOH7DLrrSX2H+5QL5GXw -=rHiT ------END PGP SIGNATURE----- diff --git a/LVM2.2.02.119.tgz.asc b/LVM2.2.02.119.tgz.asc new file mode 100644 index 0000000..8b92c74 --- /dev/null +++ b/LVM2.2.02.119.tgz.asc @@ -0,0 +1,7 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2.0.14 (GNU/Linux) + +iEYEABECAAYFAlVEHgMACgkQIoGRwVZ+LBcbPACg3ajbXrepK0o8IFgB+VCRzFH7 +VhUAoMivFvC5JmzFenPMyMU9kbXNuNTw +=+26S +-----END PGP SIGNATURE----- diff --git a/lvm2-2_02_119-fix-process_each_lv_in_vg-to-do-selection-first-then-processing.patch b/lvm2-2_02_119-fix-process_each_lv_in_vg-to-do-selection-first-then-processing.patch deleted file mode 100644 index 252aa37..0000000 --- a/lvm2-2_02_119-fix-process_each_lv_in_vg-to-do-selection-first-then-processing.patch +++ /dev/null @@ -1,251 +0,0 @@ -commit d40cd5403abe4c8297a2b0de10bf2f7481c5489e -Author: Peter Rajnoha -Date: Tue Mar 24 13:57:04 2015 +0100 - - 0 ---- - WHATS_NEW | 4 ++++ - lib/format_text/flags.c | 1 + - lib/metadata/lv_manip.c | 4 +++- - lib/metadata/metadata-exported.h | 13 ++++++++++++- - lib/metadata/metadata.c | 14 ++++++++++++++ - lib/metadata/vg.c | 1 + - lib/metadata/vg.h | 5 +++++ - test/shell/select-tools-thin.sh | 35 +++++++++++++++++++++++++++++++++++ - tools/toollib.c | 28 ++++++++++++++++++++++++---- - 9 files changed, 99 insertions(+), 6 deletions(-) - -diff --git a/WHATS_NEW b/WHATS_NEW -index 558bdb5..4010e67 100644 ---- a/WHATS_NEW -+++ b/WHATS_NEW -@@ -1,3 +1,7 @@ -+Version 2.02.119 - -+================================== -+ Fix LV processing with selection to always do the selection on initial state. -+ - Version 2.02.118 - 23rd March 2015 - ================================== - Store metadata size + checksum in lvmcache and add struct lvmcache_vgsummary. -diff --git a/lib/format_text/flags.c b/lib/format_text/flags.c -index a975606..bbd47c3 100644 ---- a/lib/format_text/flags.c -+++ b/lib/format_text/flags.c -@@ -92,6 +92,7 @@ static const struct flag _lv_flags[] = { - {CACHE_POOL_DATA, NULL, 0}, - {CACHE_POOL_METADATA, NULL, 0}, - {LV_PENDING_DELETE, NULL, 0}, /* FIXME Display like COMPATIBLE_FLAG */ -+ {LV_REMOVED, NULL, 0}, - {0, NULL, 0} - }; - -diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c -index c9c1145..99fb91f 100644 ---- a/lib/metadata/lv_manip.c -+++ b/lib/metadata/lv_manip.c -@@ -5338,6 +5338,7 @@ int link_lv_to_vg(struct volume_group *vg, struct logical_volume *lv) - lvl->lv = lv; - lv->vg = vg; - dm_list_add(&vg->lvs, &lvl->list); -+ lv->status &= ~LV_REMOVED; - - return 1; - } -@@ -5349,7 +5350,8 @@ int unlink_lv_from_vg(struct logical_volume *lv) - if (!(lvl = find_lv_in_vg(lv->vg, lv->name))) - return_0; - -- dm_list_del(&lvl->list); -+ dm_list_move(&lv->vg->removed_lvs, &lvl->list); -+ lv->status |= LV_REMOVED; - - return 1; - } -diff --git a/lib/metadata/metadata-exported.h b/lib/metadata/metadata-exported.h -index 1555c87..47fb9ae 100644 ---- a/lib/metadata/metadata-exported.h -+++ b/lib/metadata/metadata-exported.h -@@ -119,11 +119,20 @@ - #define CACHE UINT64_C(0x0001000000000000) /* LV - Internal use only */ - - #define LV_PENDING_DELETE UINT64_C(0x0004000000000000) /* LV - Internal use only */ -+#define LV_REMOVED UINT64_C(0x0040000000000000) /* LV - Internal use only -+ This flag is used to mark an LV once it has -+ been removed from the VG. It might still -+ be referenced on internal lists of LVs. -+ Any remaining references should check for -+ this flag and ignore the LV is set. -+ FIXME: Remove this flag once we have indexed -+ vg->removed_lvs for quick lookup. -+ */ - #define LV_ERROR_WHEN_FULL UINT64_C(0x0008000000000000) /* LV - error when full */ - #define PV_ALLOCATION_PROHIBITED UINT64_C(0x0010000000000000) /* PV - internal use only - allocation prohibited - e.g. to prohibit allocation of a RAID image - on a PV already holing an image of the RAID set */ --/* Next unused flag: UINT64_C(0x0040000000000000) */ -+/* Next unused flag: UINT64_C(0x0080000000000000) */ - - /* Format features flags */ - #define FMT_SEGMENTS 0x00000001U /* Arbitrary segment params? */ -@@ -222,6 +231,8 @@ - - #define lv_is_rlog(lv) (((lv)->status & REPLICATOR_LOG) ? 1 : 0) - -+#define lv_is_removed(lv) (((lv)->status & LV_REMOVED) ? 1 : 0) -+ - int lv_layout_and_role(struct dm_pool *mem, const struct logical_volume *lv, - struct dm_list **layout, struct dm_list **role); - -diff --git a/lib/metadata/metadata.c b/lib/metadata/metadata.c -index 33ce370..a1a31eb 100644 ---- a/lib/metadata/metadata.c -+++ b/lib/metadata/metadata.c -@@ -2568,12 +2568,26 @@ int vg_validate(struct volume_group *vg) - r = 0; - } - -+ dm_list_iterate_items(lvl, &vg->removed_lvs) { -+ if (!(lvl->lv->status & LV_REMOVED)) { -+ log_error(INTERNAL_ERROR "LV %s is not marked as removed while it's part " -+ "of removed LV list for VG %s", lvl->lv->name, vg->name); -+ r = 0; -+ } -+ } -+ - /* - * Count all non-snapshot invisible LVs - */ - dm_list_iterate_items(lvl, &vg->lvs) { - lv_count++; - -+ if (lvl->lv->status & LV_REMOVED) { -+ log_error(INTERNAL_ERROR "LV %s is marked as removed while it's " -+ "still part of the VG %s", lvl->lv->name, vg->name); -+ r = 0; -+ } -+ - if (lvl->lv->status & LVM_WRITE_LOCKED) { - log_error(INTERNAL_ERROR "LV %s has external flag LVM_WRITE_LOCKED set internally.", - lvl->lv->name); -diff --git a/lib/metadata/vg.c b/lib/metadata/vg.c -index 404cc6f..c9a7e9e 100644 ---- a/lib/metadata/vg.c -+++ b/lib/metadata/vg.c -@@ -63,6 +63,7 @@ struct volume_group *alloc_vg(const char *pool_name, struct cmd_context *cmd, - dm_list_init(&vg->pvs_to_create); - dm_list_init(&vg->lvs); - dm_list_init(&vg->tags); -+ dm_list_init(&vg->removed_lvs); - dm_list_init(&vg->removed_pvs); - - log_debug_mem("Allocated VG %s at %p.", vg->name, vg); -diff --git a/lib/metadata/vg.h b/lib/metadata/vg.h -index 67a04a0..b0ab122 100644 ---- a/lib/metadata/vg.h -+++ b/lib/metadata/vg.h -@@ -113,6 +113,11 @@ struct volume_group { - */ - - /* -+ * List of removed logical volumes by _lv_reduce. -+ */ -+ struct dm_list removed_lvs; -+ -+ /* - * List of removed physical volumes by pvreduce. - * They have to get cleared on vg_commit. - */ -diff --git a/test/shell/select-tools-thin.sh b/test/shell/select-tools-thin.sh -new file mode 100644 -index 0000000..d70289f ---- /dev/null -+++ b/test/shell/select-tools-thin.sh -@@ -0,0 +1,35 @@ -+#!/bin/sh -+# Copyright (C) 2015 Red Hat, Inc. All rights reserved. -+# -+# This copyrighted material is made available to anyone wishing to use, -+# modify, copy, or redistribute it subject to the terms and conditions -+# of the GNU General Public License v.2. -+# -+# You should have received a copy of the GNU General Public License -+# along with this program; if not, write to the Free Software Foundation, -+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -+ -+. lib/inittest -+ -+aux have_thin 1 0 0 || skip -+ -+aux prepare_pvs 1 16 -+ -+######################### -+# special cases to test # -+######################### -+ -+# if calling lvremove and an LV is removed that is related to other LV -+# and we're doing selection based on this relation, check if we're -+# selecting on initial state (here, thin origin LV thin_orig is removed -+# first, but thin snap should be still selectable based on origin=thin_orig -+# condition even though thin_orig has just been removed) -+vgcreate -s 4m $vg1 $dev1 -+lvcreate -l100%FREE -T $vg1/pool -+lvcreate -V4m -T $vg1/pool -n thin_orig -+lvcreate -s $vg1/thin_orig -n thin_snap -+lvremove -ff -S 'lv_name=thin_orig || origin=thin_orig' > out -+grep "Logical volume \"thin_orig\" successfully removed" out -+grep "Logical volume \"thin_snap\" successfully removed" out -+not lvs $vg1/thin_orig -+not lvs $vg1/thin_snap -diff --git a/tools/toollib.c b/tools/toollib.c -index 4bd2339..142ff33 100644 ---- a/tools/toollib.c -+++ b/tools/toollib.c -@@ -1957,6 +1957,10 @@ int process_each_lv_in_vg(struct cmd_context *cmd, struct volume_group *vg, - unsigned lvargs_supplied = 0; - struct lv_list *lvl; - struct dm_str_list *sl; -+ struct dm_list final_lvs; -+ struct lv_list *final_lvl; -+ -+ dm_list_init(&final_lvs); - - if (!vg_check_status(vg, EXPORTED_VG)) { - ret_max = ECMD_FAILED; -@@ -1986,10 +1990,6 @@ int process_each_lv_in_vg(struct cmd_context *cmd, struct volume_group *vg, - (tags_supplied && str_list_match_list(tags_in, &vg->tags, NULL))) - process_all = 1; - -- /* -- * FIXME: In case of remove it goes through deleted entries, -- * but it works since entries are allocated from vg mem pool. -- */ - dm_list_iterate_items(lvl, &vg->lvs) { - if (sigint_caught()) { - ret_max = ECMD_FAILED; -@@ -2049,6 +2049,26 @@ int process_each_lv_in_vg(struct cmd_context *cmd, struct volume_group *vg, - if (!process_lv) - continue; - -+ log_very_verbose("Adding %s/%s to the list of LVs to be processed.", vg->name, lvl->lv->name); -+ -+ if (!(final_lvl = dm_pool_zalloc(vg->vgmem, sizeof(struct lv_list)))) { -+ log_error("Failed to allocate final LV list item."); -+ ret_max = ECMD_FAILED; -+ goto_out; -+ } -+ final_lvl->lv = lvl->lv; -+ dm_list_add(&final_lvs, &final_lvl->list); -+ } -+ -+ dm_list_iterate_items(lvl, &final_lvs) { -+ /* -+ * FIXME: Once we have index over vg->removed_lvs, check directly -+ * LV presence there and remove LV_REMOVE flag/lv_is_removed fn -+ * as they won't be needed anymore. -+ */ -+ if (lv_is_removed(lvl->lv)) -+ continue; -+ - log_very_verbose("Processing LV %s in VG %s.", lvl->lv->name, vg->name); - - ret = process_single_lv(cmd, lvl->lv, handle); diff --git a/lvm2-enable-lvmetad-by-default.patch b/lvm2-enable-lvmetad-by-default.patch index 7f16b92..24f8f28 100644 --- a/lvm2-enable-lvmetad-by-default.patch +++ b/lvm2-enable-lvmetad-by-default.patch @@ -3,28 +3,28 @@ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/example.conf.in b/conf/example.conf.in -index d1a1397..812b747 100644 +index c1a8f03..98a5f42 100644 --- a/conf/example.conf.in +++ b/conf/example.conf.in -@@ -730,7 +730,7 @@ global { - # is set at the same time, LVM always issues a warning message about this - # and then it automatically disables use_lvmetad. +@@ -820,7 +820,7 @@ global { + # lvmetad is not compatible with locking_type 3 (clustering). + # LVM prints warnings and ignores lvmetad if this combination + # is seen. +- use_lvmetad = 0 ++ use_lvmetad = 1 -- use_lvmetad = 0 -+ use_lvmetad = 1 - - # Full path of the utility called to check that a thin metadata device - # is in a state that allows it to be used. + # Configuration option global/thin_check_executable. + # The full path to the thin_check command. diff --git a/lib/config/config_settings.h b/lib/config/config_settings.h -index e944b81..7b5beff 100644 +index 31609d4..35cb04d 100644 --- a/lib/config/config_settings.h +++ b/lib/config/config_settings.h -@@ -177,7 +177,7 @@ cfg(global_mirror_segtype_default_CFG, "mirror_segtype_default", global_CFG_SECT - cfg(global_raid10_segtype_default_CFG, "raid10_segtype_default", global_CFG_SECTION, 0, CFG_TYPE_STRING, DEFAULT_RAID10_SEGTYPE, vsn(2, 2, 99), NULL) - cfg(global_sparse_segtype_default_CFG, "sparse_segtype_default", global_CFG_SECTION, 0, CFG_TYPE_STRING, DEFAULT_SPARSE_SEGTYPE, vsn(2, 2, 112), NULL) - cfg(global_lvdisplay_shows_full_device_path_CFG, "lvdisplay_shows_full_device_path", global_CFG_SECTION, CFG_PROFILABLE, CFG_TYPE_BOOL, DEFAULT_LVDISPLAY_SHOWS_FULL_DEVICE_PATH, vsn(2, 2, 89), NULL) --cfg(global_use_lvmetad_CFG, "use_lvmetad", global_CFG_SECTION, 0, CFG_TYPE_BOOL, 0, vsn(2, 2, 93), NULL) -+cfg(global_use_lvmetad_CFG, "use_lvmetad", global_CFG_SECTION, 0, CFG_TYPE_BOOL, 1, vsn(2, 2, 93), NULL) - cfg(global_thin_check_executable_CFG, "thin_check_executable", global_CFG_SECTION, CFG_ALLOW_EMPTY, CFG_TYPE_STRING, THIN_CHECK_CMD, vsn(2, 2, 94), NULL) - cfg_array(global_thin_check_options_CFG, "thin_check_options", global_CFG_SECTION, 0, CFG_TYPE_STRING, "#S" DEFAULT_THIN_CHECK_OPTIONS, vsn(2, 2, 96), NULL) - cfg_array(global_thin_disabled_features_CFG, "thin_disabled_features", global_CFG_SECTION, CFG_ALLOW_EMPTY, CFG_TYPE_STRING, NULL, vsn(2, 2, 99), NULL) +@@ -780,7 +780,7 @@ cfg(global_lvdisplay_shows_full_device_path_CFG, "lvdisplay_shows_full_device_pa + "was never a valid path in the /dev filesystem.\n" + "Enable this option to reinstate the previous format.\n") + +-cfg(global_use_lvmetad_CFG, "use_lvmetad", global_CFG_SECTION, 0, CFG_TYPE_BOOL, 0, vsn(2, 2, 93), NULL, 0, NULL, ++cfg(global_use_lvmetad_CFG, "use_lvmetad", global_CFG_SECTION, 0, CFG_TYPE_BOOL, 1, vsn(2, 2, 93), NULL, 0, NULL, + "Use lvmetad to cache metadata and reduce disk scanning.\n" + "When enabled (and running), lvmetad provides LVM commands\n" + "with VG metadata and PV state. LVM commands then avoid\n" diff --git a/lvm2-set-default-preferred_names.patch b/lvm2-set-default-preferred_names.patch index 801177f..77e19c3 100644 --- a/lvm2-set-default-preferred_names.patch +++ b/lvm2-set-default-preferred_names.patch @@ -1,11 +1,31 @@ ---- LVM2.2.02.108/conf/example.conf.in 2014-07-23 16:21:02.000000000 +0100 -+++ LVM2.2.02.108-new/conf/example.conf.in 2014-07-23 23:05:06.000000000 +0100 -@@ -58,7 +58,7 @@ - # preferred_names = [ ] + conf/example.conf.in | 3 +-- + lib/config/config_settings.h | 2 +- + 2 files changed, 2 insertions(+), 3 deletions(-) + +diff --git a/conf/example.conf.in b/conf/example.conf.in +index c1a8f03..2b04496 100644 +--- a/conf/example.conf.in ++++ b/conf/example.conf.in +@@ -91,8 +91,7 @@ devices { + # Rule 4 prefers the path with least value in lexicographical order. + # Example: + # preferred_names = [ "^/dev/mpath/", "^/dev/mapper/mpath", "^/dev/[hs]d" ] +- # This configuration option does not have a default value defined. +- # preferred_names=[] ++ preferred_names = [ "^/dev/mpath/", "^/dev/mapper/mpath", "^/dev/[hs]d" ] - # Try to avoid using undescriptive /dev/dm-N names, if present. -- # preferred_names = [ "^/dev/mpath/", "^/dev/mapper/mpath", "^/dev/[hs]d" ] -+ preferred_names = [ "^/dev/mpath/", "^/dev/mapper/mpath", "^/dev/[hs]d" ] + # Configuration option devices/filter. + # Limit the block devices that are used by LVM commands. +diff --git a/lib/config/config_settings.h b/lib/config/config_settings.h +index 31609d4..ac5cf5f 100644 +--- a/lib/config/config_settings.h ++++ b/lib/config/config_settings.h +@@ -186,7 +186,7 @@ cfg(devices_external_device_info_source_CFG, "external_device_info_source", devi + "udev - Reuse existing udev database records. Applicable\n" + "only if LVM is compiled with udev support.\n") - # In case no prefererred name matches or if preferred_names are not - # defined at all, builtin rules are used to determine the preference. +-cfg_array(devices_preferred_names_CFG, "preferred_names", devices_CFG_SECTION, CFG_ALLOW_EMPTY | CFG_DEFAULT_UNDEFINED, CFG_TYPE_STRING, NULL, vsn(1, 2, 19), NULL, 0, NULL, ++cfg_array(devices_preferred_names_CFG, "preferred_names", devices_CFG_SECTION, CFG_ALLOW_EMPTY, CFG_TYPE_STRING, "#S^/dev/mpath/#S^/dev/mapper/mpath#S/dev/[hs]d", vsn(1, 2, 19), NULL, 0, NULL, + "Select which path name to display for a block device.\n" + "If multiple path names exist for a block device,\n" + "and LVM needs to display a name for the device,\n" diff --git a/lvm2.spec b/lvm2.spec index 5fd96c1..0dadfe5 100644 --- a/lvm2.spec +++ b/lvm2.spec @@ -39,7 +39,7 @@ Summary: Userland logical volume management tools Name: lvm2 -Version: 2.02.118 +Version: 2.02.119 Release: 1%{?dist} License: GPLv2 Group: System Environment/Base @@ -48,7 +48,6 @@ Source0: ftp://sources.redhat.com/pub/lvm2/releases/LVM2.%{version}.tgz Patch0: lvm2-set-default-preferred_names.patch Patch1: lvm2-enable-lvmetad-by-default.patch Patch2: lvm2-remove-mpath-device-handling-from-udev-rules.patch -Patch3: lvm2-2_02_119-fix-process_each_lv_in_vg-to-do-selection-first-then-processing.patch BuildRequires: libselinux-devel >= %{libselinux_version}, libsepol-devel BuildRequires: libblkid-devel >= %{util_linux_version} @@ -64,6 +63,7 @@ BuildRequires: systemd-devel BuildRequires: systemd-units %if %{enable_python} BuildRequires: python2-devel +BuildRequires: python3-devel BuildRequires: python-setuptools %endif %if %{enable_thin} || %{enable_cache} @@ -92,7 +92,6 @@ or more physical volumes and creating one or more logical volumes %patch0 -p1 -b .preferred_names %patch1 -p1 -b .enable_lvmetad %patch2 -p1 -b .udev_no_mpath -%patch3 -p1 -b .process_each_lv_select %build %define _default_pid_dir /run @@ -119,10 +118,24 @@ or more physical volumes and creating one or more logical volumes %if %{enable_python} %define configure_python --enable-python-bindings +%define configure_python3_flags PYTHON=/usr/bin/python3 PYTHON_CONFIG=/usr/bin/python3-config %endif -%configure --with-default-dm-run-dir=%{_default_dm_run_dir} --with-default-run-dir=%{_default_run_dir} --with-default-pid-dir=%{_default_pid_dir} --with-default-locking-dir=%{_default_locking_dir} --with-usrlibdir=%{_libdir} --enable-lvm1_fallback --enable-fsadm --with-pool=internal --enable-write_install --with-user= --with-group= --with-device-uid=0 --with-device-gid=6 --with-device-mode=0660 --enable-pkgconfig --enable-applib --enable-cmdlib --enable-dmeventd --enable-blkid_wiping %{?configure_python} %{?configure_cluster} %{?configure_cmirror} %{?configure_udev} %{?configure_thin} %{?configure_lvmetad} %{?configure_cache} +%define configure_final --with-default-dm-run-dir=%{_default_dm_run_dir} --with-default-run-dir=%{_default_run_dir} --with-default-pid-dir=%{_default_pid_dir} --with-default-locking-dir=%{_default_locking_dir} --with-usrlibdir=%{_libdir} --enable-lvm1_fallback --enable-fsadm --with-pool=internal --enable-write_install --with-user= --with-group= --with-device-uid=0 --with-device-gid=6 --with-device-mode=0660 --enable-pkgconfig --enable-applib --enable-cmdlib --enable-dmeventd --enable-blkid_wiping %{?configure_python} %{?configure_cluster} %{?configure_cmirror} %{?configure_udev} %{?configure_thin} %{?configure_lvmetad} %{?configure_cache} +%if %{enable_python} +rm -rf %{py3dir} +cp -a . %{py3dir} + +# Also configure and build Python 3 bindings. +pushd %{py3dir} +%configure %{?configure_final} %{?configure_python3_flags} +make %{?_smp_mflags} +popd + +%endif + +%configure %{?configure_final} make %{?_smp_mflags} %install @@ -132,6 +145,13 @@ make install_systemd_units DESTDIR=$RPM_BUILD_ROOT make install_systemd_generators DESTDIR=$RPM_BUILD_ROOT make install_tmpfiles_configuration DESTDIR=$RPM_BUILD_ROOT +%if %{enable_python} +# Also install Python3 bindings. +pushd %{py3dir} +make -C python install DESTDIR=$RPM_BUILD_ROOT +popd +%endif + %clean rm -rf $RPM_BUILD_ROOT @@ -169,10 +189,10 @@ rm -rf $RPM_BUILD_ROOT # Main binaries %defattr(555,root,root,-) -%{_sbindir}/blkdeactivate %{_sbindir}/fsadm %{_sbindir}/lvm %{_sbindir}/lvmconf +%{_sbindir}/lvmconfig %{_sbindir}/lvmdump %if %{enable_lvmetad} %{_sbindir}/lvmetad @@ -227,7 +247,6 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man7/lvmcache.7.gz %{_mandir}/man7/lvmthin.7.gz %{_mandir}/man7/lvmsystemid.7.gz -%{_mandir}/man8/blkdeactivate.8.gz %{_mandir}/man8/fsadm.8.gz %{_mandir}/man8/lvchange.8.gz %{_mandir}/man8/lvconvert.8.gz @@ -236,6 +255,8 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man8/lvextend.8.gz %{_mandir}/man8/lvm.8.gz %{_mandir}/man8/lvm2-activation-generator.8.gz +%{_mandir}/man8/lvm-config.8.gz +%{_mandir}/man8/lvmconfig.8.gz %{_mandir}/man8/lvm-dumpconfig.8.gz %{_mandir}/man8/lvmchange.8.gz %{_mandir}/man8/lvmconf.8.gz @@ -381,8 +402,24 @@ logical volumes, physical volumes, and volume groups. %files python-libs %{python_sitearch}/* +%package python3-libs +Summary: Python 3 module to access LVM +License: LGPLv2 +Group: Development/Libraries +Provides: python3-lvm = %{version}-%{release} +Obsoletes: python-lvm < 2.02.98-2 +Requires: %{name}-libs = %{version}-%{release} + +%description python3-libs +Python 3 module to allow the creation and use of LVM +logical volumes, physical volumes, and volume groups. + +%files python3-libs +%{python3_sitearch}/* + %endif + ############################################################################## # Cluster subpackage # The 'clvm' OCF script to manage clvmd instance is part of resource-agents. @@ -533,7 +570,9 @@ for the kernel device-mapper. %doc udev/12-dm-permissions.rules %defattr(444,root,root,-) %attr(555, -, -) %{_sbindir}/dmsetup +%attr(555, -, -) %{_sbindir}/blkdeactivate %{_mandir}/man8/dmsetup.8.gz +%{_mandir}/man8/blkdeactivate.8.gz %{_udevdir}/10-dm.rules %{_udevdir}/13-dm-disk.rules %{_udevdir}/95-dm-notify.rules @@ -645,6 +684,54 @@ the device-mapper event library. %{_libdir}/pkgconfig/devmapper-event.pc %changelog + +* Mon May 04 2015 Peter Rajnoha - 2.02.119-1 +- New lvm2-python3-libs subpackage to provide Python 3 bindings for LVM2. +- New LVM_LOG_FILE_EPOCH, LVM_EXPECTED_EXIT_STATUS env vars. Man page to follow. +- Remove detailed content from lvm.conf man page: use lvmconfig instead. +- Generate complete config files with lvmconfig or 'make generate'. +- Also display info on deprecated config with lvmconfig --withcomments. +- Display version since which config is deprecated in lvmconfig --withversions. +- Add --showdeprecated to lvmconfig to also display deprecated settings. +- Hide deprecated settings in lvmconfig output for all types but current,diff. +- Introduce support for exit on idle feature in libdaemon +- Add --showunsupported to lvmconfig to also display unsupported settings. +- Display unsupported settings for lvmconfig --type current,diff only by default +- Honour lvmconfig --ignoreunsupported and --ignoreadvanced for all --type. +- Make python bindings usable with python3 (and compatible with 2.6 & 2.7). +- Add lvmconfig -l|--list as shortcut for lvmconfig --type list --withsummary. +- Add lvmconfig --type list to display plain list of configuration settings. +- Introduce lvmconfig as the preferred form of 'lvm dumpconfig'. +- Add lv_ancestors and lv_descendants reporting fields. +- Add --ignorelocal option to dumpconfig to ignore the local section. +- Close connection to lvmetad after fork. +- Make lvchange able to resume background pvmove polling again. +- Split pvmove update metadata fn in an initial one and a subsequent one. +- Refactor shared pvmove and lvconvert code into new _poll files. +- Add --unconfigured option to dumpconfig to print strings unconfigured. +- Add --withsummary option to dumpconfig to print first line - summary comment. +- Use number of device holders to help choose between duplicate PVs. +- Try to make lvmetad and non-lvmetad duplicate PV handling as similar as poss. +- Issue warnings about duplicate PVs discovered by lvmetad. +- Track alternative devices with matching PVIDs in lvmetad. +- Check for lvm binary in blkdeactivate and skip LVM processing if not present. +- Add --enable-halvm and --disable-halvm options to lvmconf script. +- Add --services, --mirrorservice and --startstopservices option to lvmconf. +- Use proper default value of global/use_lvmetad when processing lvmconf script. +- Respect allocation/cling_tag_list during intial contiguous allocation. +- Make changes persist with python addTag/removeTag. +- Set correct vgid when updating cache when writing PV metadata. +- More efficient clvmd singlenode locking emulation. +- Reject lvcreate -m with raid4/5/6 to avoid unexpected layout. +- Don't skip invalidation of cached orphans if vg write lck is held (2.02.118). +- Log relevant PV tags when using cling allocation. +- Fix selection to not match if using reserved value in criteria with >,<,>=,<. +- Fix selection to not match reserved values for size fields if using >,<,>=,<. +- Include uuid or device number in log message after ioctl failure. +- Add DM_INTERNAL_SUSPEND_FLAG to dm-ioctl.h. +- Move blkdeactivate script from lvm2 package to device-mapper subpackage. +- Install blkdeactivate script and its man page with make install_device-mapper. + * Tue Mar 24 2015 Peter Rajnoha - 2.02.118-1 - Fix LV processing with selection to always do the selection on initial state. - Store metadata size + checksum in lvmcache and add struct lvmcache_vgsummary. diff --git a/sources b/sources index 05f7de4..b056e8c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -27f028974e8f067a9791d685b4e0fa90 LVM2.2.02.118.tgz +93d15d76ab78fbcec4721c4b44284bbb LVM2.2.02.119.tgz diff --git a/upstream b/upstream index 72df639..b216178 100644 --- a/upstream +++ b/upstream @@ -1 +1 @@ -LVM2.2.02.118.tgz +LVM2.2.02.119.tgz