Accepting request 385683 from system:packagemanager

- Fix bnc#969171 by updating even with equal priority
  * 0001-In-case-of-equal-priority-rather-update.patch

- Fix bnc#969171 by updating even with equal priority
  * 0001-In-case-of-equal-priority-rather-update.patch
- Try to autorefresh all the alternatives in post in case some of
  them were broken

- The logfile for update-alternatives is /var/log/alternatives.log
  so stop using update-alternatives.log file which is empty

OBS-URL: https://build.opensuse.org/request/show/385683
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/dpkg?expand=0&rev=15
This commit is contained in:
Dominique Leuenberger 2016-04-12 16:57:58 +00:00 committed by Git OBS Bridge
commit 14661517ca
5 changed files with 65 additions and 2 deletions

View File

@ -0,0 +1,30 @@
From 9f73659ce9b9194ce2f0219afbfb77d27e90508b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= <tchvatal@suse.com>
Date: Wed, 6 Apr 2016 20:06:15 +0200
Subject: [PATCH] In case of equal priority rather update
This is needed because in some cases priorities in openSUSE python
packages were equal in priority yet pointing to different files.
With forced refresh we unfortunately update in some un-needed cases
but are safe against this kind of errors.
---
utils/update-alternatives.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/utils/update-alternatives.c b/utils/update-alternatives.c
index 5dc3213..1af65a4 100644
--- a/utils/update-alternatives.c
+++ b/utils/update-alternatives.c
@@ -1437,7 +1437,8 @@ alternative_get_best(struct alternative *a)
best = a->choices;
for (fs = a->choices; fs; fs = fs->next)
- if (fs->priority > best->priority)
+ /* In case of equal priority rather use the new alternative */
+ if (fs->priority >= best->priority)
best = fs;
return best;
--
2.7.4

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Wed Apr 6 18:20:13 UTC 2016 - tchvatal@suse.com
- Fix bnc#969171 by updating even with equal priority
* 0001-In-case-of-equal-priority-rather-update.patch
-------------------------------------------------------------------
Fri Mar 25 09:49:52 UTC 2016 - tchvatal@suse.com

View File

@ -30,6 +30,8 @@ Source3: sensible-editor
Patch1: update-alternatives-suse.patch
# PATCH-FIX-UPSTREAM remove --utf8 since we only build En manpages.
Patch6: dpkg-sparc.diff
# PATCH-FIX-SUSE: update if two alternatives have same priority bnc#969171
Patch7: 0001-In-case-of-equal-priority-rather-update.patch
BuildRequires: gcc-c++
BuildRequires: libbz2-devel
BuildRequires: libselinux-devel
@ -78,6 +80,7 @@ Libraries and header files for dpkg.
%setup -q
%patch1 -p1
%patch6 -p1
%patch7 -p1
%build
export CFLAGS="%{optflags}"

View File

@ -1,3 +1,17 @@
-------------------------------------------------------------------
Wed Apr 6 18:20:13 UTC 2016 - tchvatal@suse.com
- Fix bnc#969171 by updating even with equal priority
* 0001-In-case-of-equal-priority-rather-update.patch
- Try to autorefresh all the alternatives in post in case some of
them were broken
-------------------------------------------------------------------
Wed Apr 6 12:05:23 UTC 2016 - tchvatal@suse.com
- The logfile for update-alternatives is /var/log/alternatives.log
so stop using update-alternatives.log file which is empty
-------------------------------------------------------------------
Fri Mar 25 09:47:24 UTC 2016 - tchvatal@suse.com

View File

@ -28,8 +28,11 @@ Source0: http://ftp.de.debian.org/debian/pool/main/d/dpkg/dpkg_%{version}
Source3: sensible-editor
Patch0: update-alternatives-suse.patch
Patch6: dpkg-sparc.diff
# PATCH-FIX-SUSE: update if two alternatives have same priority bnc#969171
Patch7: 0001-In-case-of-equal-priority-rather-update.patch
BuildRequires: ncurses-devel
BuildRequires: xz
Requires(post): update-alternatives
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@ -47,6 +50,7 @@ particular preference.
%setup -q -n dpkg-%{version}
%patch0 -p1
%patch6 -p1
%patch7 -p1
%build
%configure \
@ -67,7 +71,13 @@ install -m 0755 utils/%{name} %{buildroot}/%{_sbindir}
install -m 0644 man/%{name}.1 %{buildroot}/%{_mandir}/man1/
%post
touch %{_localstatedir}/log/%{name}.log
touch %{_localstatedir}/log/alternatives.log
# Fix broken alternatives list bnc#969171
cd %{_sysconfdir}/alternatives/
for i in * ; do
# continue on errors but still print them out
update-alternatives --auto $i || :
done
%files
%defattr(-,root,root,-)
@ -76,6 +86,6 @@ touch %{_localstatedir}/log/%{name}.log
%dir %{_localstatedir}/lib/rpm/alternatives
%{_sbindir}/update-alternatives
%{_mandir}/man1/update-alternatives.1*
%ghost %{_localstatedir}/log/update-alternatives.log
%ghost %{_localstatedir}/log/alternatives.log
%changelog