New upstream release v2.02.119.
This commit is contained in:
parent
d65504907b
commit
704f3c9b48
1
.gitignore
vendored
1
.gitignore
vendored
@ -24,3 +24,4 @@
|
||||
/LVM2.2.02.115.tgz
|
||||
/LVM2.2.02.116.tgz
|
||||
/LVM2.2.02.118.tgz
|
||||
/LVM2.2.02.119.tgz
|
||||
|
@ -1,7 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v2.0.14 (GNU/Linux)
|
||||
|
||||
iEYEABECAAYFAlTLr0QACgkQIoGRwVZ+LBc9zACfUCigIN9xYpsZLhxAz6J4Gx3n
|
||||
H4MAoLAY++8ZzWZUDLS9BIyW/u8NPyxS
|
||||
=fK6H
|
||||
-----END PGP SIGNATURE-----
|
@ -1,7 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v2.0.14 (GNU/Linux)
|
||||
|
||||
iEYEABECAAYFAlUQxcsACgkQIoGRwVZ+LBeixACguJS3FpEpQMxLEX9IHTyikEzz
|
||||
vykAnid+xH8raOH7DLrrSX2H+5QL5GXw
|
||||
=rHiT
|
||||
-----END PGP SIGNATURE-----
|
7
LVM2.2.02.119.tgz.asc
Normal file
7
LVM2.2.02.119.tgz.asc
Normal file
@ -0,0 +1,7 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v2.0.14 (GNU/Linux)
|
||||
|
||||
iEYEABECAAYFAlVEHgMACgkQIoGRwVZ+LBcbPACg3ajbXrepK0o8IFgB+VCRzFH7
|
||||
VhUAoMivFvC5JmzFenPMyMU9kbXNuNTw
|
||||
=+26S
|
||||
-----END PGP SIGNATURE-----
|
@ -1,251 +0,0 @@
|
||||
commit d40cd5403abe4c8297a2b0de10bf2f7481c5489e
|
||||
Author: Peter Rajnoha <prajnoha@redhat.com>
|
||||
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);
|
@ -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"
|
||||
|
@ -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"
|
||||
|
99
lvm2.spec
99
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 <prajnoha@redhat.com> - 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 <prajnoha@redhat.com> - 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.
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
27f028974e8f067a9791d685b4e0fa90 LVM2.2.02.118.tgz
|
||||
93d15d76ab78fbcec4721c4b44284bbb LVM2.2.02.119.tgz
|
||||
|
Loading…
Reference in New Issue
Block a user