diff --git a/lvm2-revert-udev-database-retention-assumption.patch b/lvm2-revert-udev-database-retention-assumption.patch deleted file mode 100644 index 724cfe5..0000000 --- a/lvm2-revert-udev-database-retention-assumption.patch +++ /dev/null @@ -1,72 +0,0 @@ ---- LVM2.2.02.68-old/udev/10-dm.rules.in 2010-06-23 18:00:32.000000000 +0100 -+++ LVM2.2.02.68/udev/10-dm.rules.in 2010-06-23 19:46:27.000000000 +0100 -@@ -19,6 +19,13 @@ - SUBSYSTEM!="block", GOTO="dm_end" - KERNEL!="dm-[0-9]*", GOTO="dm_end" - -+# There is a new change event generated in block layer since kernel -+# version 2.6.32. It adds notification for changes in read-only -+# attribute. We don't want to misinterpret the regular meaning of change -+# events for DM devices and we don't want to apply the rules prematurely, -+# therefore we disable them in this situation. -+ENV{DISK_RO}=="1", GOTO="dm_disable" -+ - # Set proper sbin path, /sbin has higher priority than /usr/sbin. - ENV{DM_SBIN_PATH}="/sbin" - TEST!="$env{DM_SBIN_PATH}/dmsetup", ENV{DM_SBIN_PATH}="/usr/sbin" -@@ -30,16 +37,11 @@ - # kernels >= 2.6.31 only. - ENV{DM_COOKIE}=="?*", IMPORT{program}="$env{DM_SBIN_PATH}/dmsetup udevflags $env{DM_COOKIE}" - --# Device created, major and minor number assigned - "add" event generated. --# Table loaded - no event generated. --# Device resumed (or renamed) - "change" event generated. --# Device removed - "remove" event generated. --# --# The dm-X nodes are always created, even on "add" event, we can't suppress --# that (the node is created even earlier with devtmpfs). All the symlinks --# (e.g. /dev/mapper) are created in right time after a device has its table --# loaded and is properly resumed. For this reason, direct use of dm-X nodes --# is not recommended. -+# Normally, we would test for DM_UDEV_DISABLE_DM_RULES_FLAG here and skip -+# the rules if set. However, we need to set DM_* environment variables -+# for now to properly filter out inappropriate events. This dependency -+# might be removed in the future. -+ - ACTION!="add|change", GOTO="dm_end" - - # There is no cookie set nor any flags encoded in events not originating -@@ -53,7 +55,6 @@ - IMPORT{db}="DM_UDEV_DISABLE_OTHER_RULES_FLAG" - IMPORT{db}="DM_UDEV_LOW_PRIORITY_FLAG" - IMPORT{db}="DM_UDEV_DISABLE_LIBRARY_FALLBACK_FLAG" --IMPORT{db}="DM_UDEV_PRIMARY_SOURCE_FLAG" - IMPORT{db}="DM_UDEV_FLAG7" - IMPORT{db}="DM_SUBSYSTEM_UDEV_FLAG0" - IMPORT{db}="DM_SUBSYSTEM_UDEV_FLAG1" -@@ -65,19 +66,12 @@ - IMPORT{db}="DM_SUBSYSTEM_UDEV_FLAG7" - LABEL="dm_flags_done" - --# Normally, we operate on "change" events. But when coldplugging, there's an --# "add" event present. We have to recognize this and do our actions in this --# particular situation, too. Also, we don't want the nodes to be created --# prematurely on "add" events while not coldplugging. We check --# DM_UDEV_PRIMARY_SOURCE_FLAG to see if the device was activated correctly --# before and if not, we ignore the "add" event totally. This way we can support --# udev triggers generating "add" events (e.g. "udevadm trigger --action=add" or --# "echo add > /sys/block//uevent"). The trigger with "add" event is --# also used at boot to reevaluate udev rules for all existing devices activated --# before (e.g. in initrd). If udev is used in initrd, we require the udev init --# script to not remove the existing udev database so we can reuse the information --# stored at the time of device activation in the initrd. --ACTION=="add", ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}!="1", GOTO="dm_disable" -+# Normally, we operate on "change" events only. But when -+# coldplugging, there's an "add" event present. We have to -+# recognize this and do our actions in this particular -+# situation, too. Also, we don't want the nodes to be -+# created prematurely on "add" events while not coldplugging. -+ACTION=="add", ENV{STARTUP}!="1", NAME="", GOTO="dm_end" - - # "dm" sysfs subdirectory is available in newer versions of DM - # only (kernels >= 2.6.29). We have to check for its existence diff --git a/lvm2.spec b/lvm2.spec index e73c9d3..fb8e6ae 100644 --- a/lvm2.spec +++ b/lvm2.spec @@ -16,15 +16,12 @@ Summary: Userland logical volume management tools Name: lvm2 Version: 2.02.68 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2 Group: System Environment/Base URL: http://sources.redhat.com/lvm2 Source0: ftp://sources.redhat.com/pub/lvm2/LVM2.%{version}.tgz Patch0: lvm2-set-default-preferred_names.patch -# Next patch is required by the old version of udev in rawhide. -# Remove the patch once the udev package has been updated. -Patch1: lvm2-revert-udev-database-retention-assumption.patch BuildRequires: libselinux-devel >= 1.30.19-4, libsepol-devel BuildRequires: ncurses-devel @@ -53,7 +50,6 @@ or more physical volumes and creating one or more logical volumes %prep %setup -q -n LVM2.%{version} %patch0 -p1 -b preferred_names -%patch1 -p1 -b udev_dbase %build %define _exec_prefix "" @@ -324,6 +320,7 @@ License: GPLv2 Group: System Environment/Base URL: http://sources.redhat.com/dm Requires: device-mapper-libs = %{device_mapper_version}-%{release} +Requires: udev >= 158-1 Requires: libudev Requires: util-linux-ng >= 2.15 # We need dracut to install required udev rules if udev_sync @@ -438,6 +435,10 @@ the device-mapper event library. %changelog +* Thu Jun 24 2010 Peter Rajnoha - 2.02.68-2 +- Fix udev rules to handle spurious events properly. +- Add Requires: udev >= 158-1 (needed for the change in udev rules). + * Wed Jun 23 2010 Alasdair Kergon - 2.02.68-1 - Have device-mapper-libs require device-mapper (circular) for udev rules. - Clear exec_prefix.