diff --git a/.gitignore b/.gitignore
index 4b88233..dd0bcd9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/LVM2.2.03.05.tgz
+SOURCES/LVM2.2.03.07.tgz
diff --git a/.lvm2.metadata b/.lvm2.metadata
index a20d07d..34ff4c7 100644
--- a/.lvm2.metadata
+++ b/.lvm2.metadata
@@ -1 +1 @@
-edfa340a4bbdb3e995521bebbe5307fd7687ac3b SOURCES/LVM2.2.03.05.tgz
+a518f89776180548cd0b10ce5e272ae9274e2935 SOURCES/LVM2.2.03.07.tgz
diff --git a/SOURCES/lvm2-rhel8.patch b/SOURCES/lvm2-rhel8.patch
index 0c12ddd..8b6e101 100644
--- a/SOURCES/lvm2-rhel8.patch
+++ b/SOURCES/lvm2-rhel8.patch
@@ -3,16 +3,17 @@
  2 files changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/VERSION b/VERSION
-index ab284be..4661287 100644
+index 717c4cf..b7fddf4 100644
 --- a/VERSION
 +++ b/VERSION
 @@ -1 +1 @@
--2.03.05(2) (2019-06-15)
-+2.03.05(2)-RHEL8 (2019-06-15)
+-2.03.07(2) (2019-11-30)
++2.03.07(2)-RHEL8 (2019-11-30)
 diff --git a/VERSION_DM b/VERSION_DM
-index bd19b7d..32999a6 100644
+index a230ed0..fc0ec81 100644
 --- a/VERSION_DM
 +++ b/VERSION_DM
 @@ -1 +1 @@
--1.02.163 (2019-06-15)
-+1.02.163-RHEL8 (2019-06-15)
+-1.02.167 (2019-11-30)
++1.02.167-RHEL8 (2019-11-30)
+
diff --git a/SOURCES/lvm2-set-default-preferred_names.patch b/SOURCES/lvm2-set-default-preferred_names.patch
index 95259f4..853cf51 100644
--- a/SOURCES/lvm2-set-default-preferred_names.patch
+++ b/SOURCES/lvm2-set-default-preferred_names.patch
@@ -1,19 +1,13 @@
- conf/example.conf.in         | 7 ++++---
+ conf/example.conf.in         | 3 ++-
  lib/config/config_settings.h | 2 +-
- 2 files changed, 5 insertions(+), 4 deletions(-)
+ 2 files changed, 3 insertions(+), 2 deletions(-)
 
 diff --git a/conf/example.conf.in b/conf/example.conf.in
-index a5eba01..8fa126b 100644
+index 05b0857..88858fc 100644
 --- a/conf/example.conf.in
 +++ b/conf/example.conf.in
-@@ -118,11 +118,12 @@ devices {
- 	# Prefer the name with the least number of slashes.
- 	# Prefer a name that is a symlink.
- 	# Prefer the path with least value in lexicographical order.
--	# 
--	# Example
-+	#
-+	# Example:
+@@ -122,7 +122,8 @@ devices {
+ 	# Example
  	# preferred_names = [ "^/dev/mpath/", "^/dev/mapper/mpath", "^/dev/[hs]d" ]
  	# 
 -	# This configuration option does not have a default value defined.
@@ -23,7 +17,7 @@ index a5eba01..8fa126b 100644
  	# 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 efa86e7..b3b6c77 100644
+index 2bb72ba..dce9705 100644
 --- a/lib/config/config_settings.h
 +++ b/lib/config/config_settings.h
 @@ -269,7 +269,7 @@ cfg(devices_hints_CFG, "hints", devices_CFG_SECTION, CFG_DEFAULT_COMMENTED, CFG_
@@ -31,7 +25,7 @@ index efa86e7..b3b6c77 100644
  	"#\n")
  
 -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,
++cfg_array(devices_preferred_names_CFG, "preferred_names", devices_CFG_SECTION, CFG_ALLOW_EMPTY | CFG_DEFAULT_COMMENTED, 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, and LVM needs to\n"
  	"display a name for the device, the path names are matched against\n"
diff --git a/SOURCES/lvm2-test-skip-problematic-tests.patch b/SOURCES/lvm2-test-skip-problematic-tests.patch
index e512647..4f55e7c 100644
--- a/SOURCES/lvm2-test-skip-problematic-tests.patch
+++ b/SOURCES/lvm2-test-skip-problematic-tests.patch
@@ -15,23 +15,24 @@ index 9bc1683..1b5608c 100755
  
  		pv = self.objs[PV_INT][0]
 diff --git a/test/shell/lvcreate-usage.sh b/test/shell/lvcreate-usage.sh
-index 6d42401..120ab4b 100644
+index b1cd515..8358218 100644
 --- a/test/shell/lvcreate-usage.sh
 +++ b/test/shell/lvcreate-usage.sh
-@@ -177,13 +177,13 @@ check lv_field $vg/$lv3 lv_read_ahead "8.00k"
- check lv_field $vg/$lv3 lv_kernel_read_ahead "8.00k"
- lvcreate -L 8 -n $lv4 --readahead auto $vg
- check lv_field $vg/$lv4 lv_read_ahead "auto"
--check lv_field $vg/$lv4 lv_kernel_read_ahead "128.00k"
-+should check lv_field $vg/$lv4 lv_kernel_read_ahead "128.00k"
+@@ -182,14 +182,14 @@ DEVICE=$(dmsetup deps -o blkdevname "$dev1" | sed -e "s,.*:\ (\(.*\)),/dev/\1,")
+ RASZ=$(( $(blockdev --getra "$DEVICE" ) / 2 ))
+ SZ="$RASZ.00k"
+ test "$RASZ" -ge 128 || SZ="128.00k"
+-check lv_field $vg/$lv4 lv_kernel_read_ahead "$SZ" --units k
++should check lv_field $vg/$lv4 lv_kernel_read_ahead "$SZ" --units k
  lvcreate -L 8 -n $lv5 -i2 --stripesize 16k --readahead auto $vg
  check lv_field $vg/$lv5 lv_read_ahead "auto"
--check lv_field $vg/$lv5 lv_kernel_read_ahead "128.00k"
-+should check lv_field $vg/$lv5 lv_kernel_read_ahead "128.00k"
+-check lv_field $vg/$lv5 lv_kernel_read_ahead "$SZ" --units k
++should check lv_field $vg/$lv5 lv_kernel_read_ahead "$SZ" --units k
  lvcreate -L 8 -n $lv6 -i2 --stripesize 128k --readahead auto $vg
  check lv_field $vg/$lv6 lv_read_ahead "auto"
--check lv_field $vg/$lv6 lv_kernel_read_ahead "512.00k"
-+should check lv_field $vg/$lv6 lv_kernel_read_ahead "512.00k"
+ test "$RASZ" -ge 512 || SZ="512.00k"
+-check lv_field $vg/$lv6 lv_kernel_read_ahead "$SZ" --units k
++should check lv_field $vg/$lv6 lv_kernel_read_ahead "$SZ" --units k
  lvremove -ff $vg
  
  #
diff --git a/SPECS/lvm2.spec b/SPECS/lvm2.spec
index 79e7c4e..c0839d8 100644
--- a/SPECS/lvm2.spec
+++ b/SPECS/lvm2.spec
@@ -1,4 +1,4 @@
-%global device_mapper_version 1.02.163
+%global device_mapper_version 1.02.167
 
 %global enable_cache 1
 %global enable_cluster 1
@@ -8,8 +8,9 @@
 %global enable_lvmpolld 1
 %global enable_thin 1
 %global enable_dmfilemapd 1
-%global enable_testsuite 0
+%global enable_testsuite 1
 %global enable_vdo 1
+%global enable_writecache 1
 
 %global system_release_version 23
 %global systemd_version 189-3
@@ -55,10 +56,9 @@ Name: lvm2
 %if 0%{?rhel}
 Epoch: %{rhel}
 %endif
-Version: 2.03.05
+Version: 2.03.07
 Release: 1%{?dist}
 License: GPLv2
-Group: System Environment/Base
 URL: http://sourceware.org/lvm2
 Source0: ftp://sourceware.org/pub/lvm2/releases/LVM2.%{version}.tgz
 Patch0: lvm2-rhel8.patch
@@ -119,9 +119,9 @@ or more physical volumes and creating one or more logical volumes
 
 %prep
 %setup -q -n LVM2.%{version}
-%patch0 -p1 -b .rhel8
-%patch1 -p1 -b .preferred_names
-%patch2 -p1 -b .skip_problematic_tests
+%patch0 -p1 -b .backup0
+%patch1 -p1 -b .backup1
+%patch2 -p1 -b .backup2
 
 %build
 %global _default_pid_dir /run
@@ -164,7 +164,11 @@ or more physical volumes and creating one or more logical volumes
 %global configure_vdo --with-vdo=internal --with-vdo-format=%{_bindir}/vdoformat
 %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-fsadm --enable-write_install --with-user= --with-group= --with-device-uid=0 --with-device-gid=6 --with-device-mode=0660 --enable-pkgconfig --enable-cmdlib --enable-dmeventd --enable-blkid_wiping %{?configure_cluster} %{?configure_cmirror} %{?configure_udev} %{?configure_thin} %{?configure_cache} %{?configure_lvmpolld} %{?configure_lockd_dlm} %{?configure_lockd_sanlock} %{?configure_lvmdbusd} %{?configure_dmfilemapd} %{?configure_vdo} --disable-silent-rules
+%if %{enable_writecache}
+%global configure_writecache --with-writecache=internal
+%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-fsadm --enable-write_install --with-user= --with-group= --with-device-uid=0 --with-device-gid=6 --with-device-mode=0660 --enable-pkgconfig --enable-cmdlib --enable-dmeventd --enable-blkid_wiping %{?configure_cluster} %{?configure_cmirror} %{?configure_udev} %{?configure_thin} %{?configure_cache} %{?configure_lvmpolld} %{?configure_lockd_dlm} %{?configure_lockd_sanlock} %{?configure_lvmdbusd} %{?configure_dmfilemapd} %{?configure_writecache} %{?configure_vdo} --disable-silent-rules
 
 make %{?_smp_mflags}
 
@@ -179,7 +183,6 @@ make -C test install DESTDIR=$RPM_BUILD_ROOT
 %endif
 
 %post
-/sbin/ldconfig
 %systemd_post blk-availability.service lvm2-monitor.service
 if [ "$1" = "1" ] ; then
 	# FIXME: what to do with this? We do not want to start it in a container/chroot
@@ -375,7 +378,6 @@ systemctl start lvm2-lvmpolld.socket >/dev/null 2>&1 || :
 ##############################################################################
 %package devel
 Summary: Development libraries and headers
-Group: Development/Libraries
 License: LGPLv2
 Requires: %{name} = %{?epoch}:%{version}-%{release}
 Requires: device-mapper-devel = %{?epoch}:%{device_mapper_version}-%{release}
@@ -395,15 +397,12 @@ the lvm2 libraries.
 %package libs
 Summary: Shared libraries for lvm2
 License: LGPLv2
-Group: System Environment/Libraries
 Requires: device-mapper-event = %{?epoch}:%{device_mapper_version}-%{release}
 
 %description libs
 This package contains shared lvm2 libraries for applications.
 
-%post libs -p /sbin/ldconfig
-
-%postun libs -p /sbin/ldconfig
+%ldconfig_scriptlets libs
 
 %files libs
 %{!?_licensedir:%global license %%doc}
@@ -433,7 +432,6 @@ This package contains shared lvm2 libraries for applications.
 %if %{enable_lockd_dlm} || %{enable_lockd_sanlock}
 %package lockd
 Summary: LVM locking daemon
-Group: System Environment/Base
 Requires: lvm2 = %{?epoch}:%{version}-%{release}
 %if %{enable_lockd_sanlock}
 Requires: sanlock-lib >= %{sanlock_version}
@@ -450,13 +448,13 @@ Requires(postun): systemd-units >= %{systemd_version}
 LVM commands use lvmlockd to coordinate access to shared storage.
 
 %post lockd
-%systemd_post lvm2-lvmlockd.service
+%systemd_post lvmlockd.service
 
 %preun lockd
-%systemd_preun lvm2-lvmlockd.service
+%systemd_preun lvmlockd.service
 
 %postun lockd
-%systemd_postun lvm2-lvmlockd.service
+%systemd_postun lvmlockd.service
 
 %files lockd
 %defattr(444,root,root,-)
@@ -478,7 +476,6 @@ LVM commands use lvmlockd to coordinate access to shared storage.
 
 %package -n cmirror
 Summary: Daemon for device-mapper-based clustered mirrors
-Group: System Environment/Base
 Requires: corosync >= %{corosync_version}
 Requires: device-mapper = %{?epoch}:%{device_mapper_version}-%{release}
 Requires: resource-agents >= %{resource_agents_version}
@@ -497,7 +494,6 @@ Daemon providing device-mapper-based mirrors in a shared-storage cluster.
 %package -n cmirror-standalone
 Summary: Additional files to support device-mapper-based clustered mirrors in standalone mode
 License: GPLv2
-Group: System Environment/Base
 Requires: cmirror >= %{?epoch}:%{version}-%{release}
 
 %description -n cmirror-standalone
@@ -530,7 +526,6 @@ involvement (e.g. pacemaker).
 %package dbusd
 Summary: LVM2 D-Bus daemon
 License: GPLv2
-Group: System Environment/Base
 BuildArch: noarch
 Requires: lvm2 >= %{?epoch}:%{version}-%{release}
 Requires: dbus
@@ -573,7 +568,6 @@ Daemon for access to LVM2 functionality through a D-Bus interface.
 Summary: Device mapper utility
 Version: %{device_mapper_version}
 License: GPLv2
-Group: System Environment/Base
 URL: http://sources.redhat.com/dm
 Requires: device-mapper-libs = %{?epoch}:%{device_mapper_version}-%{release}
 Requires: util-linux >= %{util_linux_version}
@@ -610,7 +604,6 @@ for the kernel device-mapper.
 Summary: Development libraries and headers for device-mapper
 Version: %{device_mapper_version}
 License: LGPLv2
-Group: Development/Libraries
 Requires: device-mapper = %{?epoch}:%{device_mapper_version}-%{release}
 Requires: pkgconfig
 
@@ -628,15 +621,12 @@ the device-mapper libraries.
 Summary: Device-mapper shared library
 Version: %{device_mapper_version}
 License: LGPLv2
-Group: System Environment/Libraries
 Requires: device-mapper = %{?epoch}:%{device_mapper_version}-%{release}
 
 %description -n device-mapper-libs
 This package contains the device-mapper shared library, libdevmapper.
 
-%post -n device-mapper-libs -p /sbin/ldconfig
-
-%postun -n device-mapper-libs -p /sbin/ldconfig
+%ldconfig_scriptlets -n device-mapper-libs
 
 %files -n device-mapper-libs
 %{!?_licensedir:%global license %%doc}
@@ -646,7 +636,6 @@ This package contains the device-mapper shared library, libdevmapper.
 
 %package -n device-mapper-event
 Summary: Device-mapper event daemon
-Group: System Environment/Base
 Version: %{device_mapper_version}
 Requires: device-mapper = %{?epoch}:%{device_mapper_version}-%{release}
 Requires: device-mapper-event-libs = %{?epoch}:%{device_mapper_version}-%{release}
@@ -683,15 +672,12 @@ fi
 Summary: Device-mapper event daemon shared library
 Version: %{device_mapper_version}
 License: LGPLv2
-Group: System Environment/Libraries
 
 %description -n device-mapper-event-libs
 This package contains the device-mapper event daemon shared library,
 libdevmapper-event.
 
-%post -n device-mapper-event-libs -p /sbin/ldconfig
-
-%postun -n device-mapper-event-libs -p /sbin/ldconfig
+%ldconfig_scriptlets -n device-mapper-event-libs
 
 %files -n device-mapper-event-libs
 %{!?_licensedir:%global license %%doc}
@@ -703,7 +689,6 @@ libdevmapper-event.
 Summary: Development libraries and headers for the device-mapper event daemon
 Version: %{device_mapper_version}
 License: LGPLv2
-Group: Development/Libraries
 Requires: device-mapper-event = %{?epoch}:%{device_mapper_version}-%{release}
 Requires: pkgconfig
 
@@ -737,6 +722,35 @@ An extensive functional testsuite for LVM2.
 %endif
 
 %changelog
+* Sat Nov 30 2019 Marian Csontos <mcsontos@redhat.com> - 2.03.07-1
+- Ensure minimum required region size on striped RaidLV creation.
+- Fix resize of thin-pool with data and metadata of different segtype.
+- Improve mirror type leg splitting.
+- Fix activation order when removing merged snapshot.
+- Experimental VDO support for lvmdbusd.
+- Correctly set read_ahead for LVs when pvmove is finished.
+- Add support for DM_DEVICE_GET_TARGET_VERSION into device_mapper.
+- Activate thin-pool layered volume as 'read-only' device.
+- Ignore crypto devices with UUID signature CRYPT-SUBDEV.
+- Synchronize with udev when dropping snapshot.
+- Add missing device synchronization point before removing pvmove node.
+- See WHATS_NEW for more.
+
+* Wed Sep 25 2019 Marian Csontos <mcsontos@redhat.com> - 2.03.05-5
+- Fix lvmlockd is not started with sanlock running.
+
+* Sun Aug 18 2019 Marian Csontos <mcsontos@redhat.com> - 2.03.05-4
+- Update tests.
+
+* Sun Aug 18 2019 Marian Csontos <mcsontos@redhat.com> - 2.03.05-3
+- Remove unsupported OPTIONS+="event_timeout" udev rule from 11-dm-lvm.rules.
+- Prevent creating VGs with PVs with different logical block sizes.
+- Fix metadata writes from corrupting with large physical block size.
+
+* Wed Jul 24 2019 Marian Csontos <mcsontos@redhat.com> - 2.03.05-2
+- Fix scanning of PVs with size not matching device.
+- Allow --stripe/--stripesize in mirror conversions.
+
 * Sat Jun 15 2019 Marian Csontos <mcsontos@redhat.com> - 2.03.05-1
 - Update to upstream release 2.03.05.