Accepting request 507153 from home:dimstar:branches:Base:System

- Add Special migration for libdevmapper's move from /lib to
  /usr/lib and from device-mapper.rpm to libdevmapper.rpm: the
  library is now in %{_libdir}, but up to the point where zypp
  removes the 'old' device-mapper package, the old library 'wins'
  the ldloader race resulting in binaries asking for the newer
  version still getting the old one (boo#1045396).
  A typical update issue seen is, zypp updating packages in this
  order:
  - libdevmapper1_03 (new package)
  - libcryptsetup4 (links libdevmapper-1.03, rpm dep satisfied)
  - systemd (linking libcryptsetup.so.4, rpm dep satisfied
    At this point, anything calling systemdctl gets libdevmapper
    from the old device-mapper package into the memory, which in
    turn is version 1.02 and does not provide all the needed
    symbols
  - device-mapper (which removes /lib/libdevmapper.so.1.02, but is
    now too late, as various post scripts already failed on running
    systemctl)

This has been tested in a VM upgrade, similar to the situation reported in bugzilla - the results was a fully operational system

OBS-URL: https://build.opensuse.org/request/show/507153
OBS-URL: https://build.opensuse.org/package/show/Base:System/lvm2?expand=0&rev=192
This commit is contained in:
Eric ren 2017-07-01 13:52:52 +00:00 committed by Git OBS Bridge
parent e42ca3a38b
commit ca0867bdb4
4 changed files with 79 additions and 1 deletions

View File

@ -1,3 +1,26 @@
-------------------------------------------------------------------
Thu Jun 29 16:38:05 UTC 2017 - dimstar@opensuse.org
- Add Special migration for libdevmapper's move from /lib to
/usr/lib and from device-mapper.rpm to libdevmapper.rpm: the
library is now in %{_libdir}, but up to the point where zypp
removes the 'old' device-mapper package, the old library 'wins'
the ldloader race resulting in binaries asking for the newer
version still getting the old one (boo#1045396).
A typical update issue seen is, zypp updating packages in this
order:
- libdevmapper1_03 (new package)
- libcryptsetup4 (links libdevmapper-1.03, rpm dep satisfied)
- systemd (linking libcryptsetup.so.4, rpm dep satisfied
At this point, anything calling systemdctl gets libdevmapper
from the old device-mapper package into the memory, which in
turn is version 1.02 and does not provide all the needed
symbols
- device-mapper (which removes /lib/libdevmapper.so.1.02, but is
now too late, as various post scripts already failed on running
systemctl)
-------------------------------------------------------------------
Sat Jun 17 16:50:53 UTC 2017 - zren@suse.com

View File

@ -250,7 +250,16 @@ Device mapper main shared library
%{_libdir}/libdevmapper.so.1.03
%{_libdir}/libdevmapper.so.1.02
%post -n %{libname} -p /sbin/ldconfig
%post -n %{libname}
if [ -f /%{_lib}/libdevmapper.so.1.03 ]; then
# Special migration - the library is now in %{_libdir}, but up to the point where
# zypp removes the 'old' device-mapper package, the old library 'wins' the ldloader race
# resulting in binaries asking for the newer version still getting the old one.
# This in turn results in funny bugs like boo#1045396
# Remove /%{_lib}/libdevmapper.so.1.02 - and the run ldconfig
rm /%{_lib}/libdevmapper.so.1.03
fi
/sbin/ldconfig
%postun -n %{libname} -p /sbin/ldconfig
%package -n %{libname_event}

View File

@ -1,3 +1,26 @@
-------------------------------------------------------------------
Thu Jun 29 16:38:05 UTC 2017 - dimstar@opensuse.org
- Add Special migration for libdevmapper's move from /lib to
/usr/lib and from device-mapper.rpm to libdevmapper.rpm: the
library is now in %{_libdir}, but up to the point where zypp
removes the 'old' device-mapper package, the old library 'wins'
the ldloader race resulting in binaries asking for the newer
version still getting the old one (boo#1045396).
A typical update issue seen is, zypp updating packages in this
order:
- libdevmapper1_03 (new package)
- libcryptsetup4 (links libdevmapper-1.03, rpm dep satisfied)
- systemd (linking libcryptsetup.so.4, rpm dep satisfied
At this point, anything calling systemdctl gets libdevmapper
from the old device-mapper package into the memory, which in
turn is version 1.02 and does not provide all the needed
symbols
- device-mapper (which removes /lib/libdevmapper.so.1.02, but is
now too late, as various post scripts already failed on running
systemctl)
-------------------------------------------------------------------
Sat Jun 17 16:50:53 UTC 2017 - zren@suse.com

View File

@ -1,3 +1,26 @@
-------------------------------------------------------------------
Thu Jun 29 16:38:05 UTC 2017 - dimstar@opensuse.org
- Add Special migration for libdevmapper's move from /lib to
/usr/lib and from device-mapper.rpm to libdevmapper.rpm: the
library is now in %{_libdir}, but up to the point where zypp
removes the 'old' device-mapper package, the old library 'wins'
the ldloader race resulting in binaries asking for the newer
version still getting the old one (boo#1045396).
A typical update issue seen is, zypp updating packages in this
order:
- libdevmapper1_03 (new package)
- libcryptsetup4 (links libdevmapper-1.03, rpm dep satisfied)
- systemd (linking libcryptsetup.so.4, rpm dep satisfied
At this point, anything calling systemdctl gets libdevmapper
from the old device-mapper package into the memory, which in
turn is version 1.02 and does not provide all the needed
symbols
- device-mapper (which removes /lib/libdevmapper.so.1.02, but is
now too late, as various post scripts already failed on running
systemctl)
-------------------------------------------------------------------
Sat Jun 17 16:50:53 UTC 2017 - zren@suse.com